mercurial-5.9.1-150400.3.3.1<>,Ǭde(Cp9| 3x ^=R?׊=7KE^eDSW>ijr'L6.2$ uu'z Y !;|-W5'p^1RlP] 1 9EweD~p:;fd0CM]xX&G-ʶȗL`a'HI,9֢ /Q+#3RCHH7 "mC5Iԣ_ё*v݆ܛ-*Qo_<sy5G ߂aw_>A?d   8 5Wv|yhy Zy %Ly 70y ?y DyVyly:`yDx](8R9R:RF0GHyH,yIyXY\y]y^?SpbVcWdX!eX&fX)lX+uX@yvj$wryxyymzxCmercurial5.9.1150400.3.3.1Scalable Distributed SCMMercurial is a fast, lightweight source control management system designed for efficient handling of very large distributed projects.de(Cibs-arm-5SUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-laterhttps://www.suse.com/Development/Tools/Version Controlhttps://www.mercurial-scm.org/linuxaarch64( 1V jz+j.  dk 'c) y3A@Jol$ ?!@bfm =dE6FaA3';c*+2PqjZ=T8 w; k* w]]X\!NQFRR  ,4&"N7%D&m:P0*GW,y!lFEP3b]6:3 @cn{#?Wk9pI/{/:"KZ?V on.l ^H Z-&'B"%,*tCU-}0, G/C k cP 4e^{ {  B&OvM Z25ZYOKK?8y+/ <q7 \i?: x^&<2=#(mS&FLmDPQ2K'kcl_%/'^ l X=sJpY: ^=+*.VxqN&p0N]O ^ I@6|#Vy  p7k26WVp U $dk\_(.B&iL E}:Hn4d<>!/a + 0^w .?@A) j\R;*M@<a$~Hc iJS*>5e7N[D5GP2Nw-<2.9tZ6W] ; h  0! s v )!E NgI{ Vb\C"XM`<sC E@ Yx9 qX['F!y7cvx/U-7"iOJ)]iZC + qN!eG ;n@  Z &SL X( s5,,x ,7s`Q DW O35;e0b!#IcLKY 7l .$)nA](lj;'1/ DX-AEzTvM$t -E`e>0,\5"+  )<J M E%CIR@KGG^C N ]&<9I|"y(9SABsD]q! G,: v0HHg8`#/bx`"E-%v   s~8y@ & NU B v 4M  5.> wC|,LF:,o;>mo@%[*=`#r)$a u<~"x9Q q|!8" <bnkV7  0i?nW R {D`ǿP4C iE[.fxOIZ,Pg@&0h 0{R<b;nOe %XKl a-uTXEd.6k BZquyVcX'Vn55Y j>H= |;D0Fz %"AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤큤A큤A큤A큤A큤큤A큤AA큤A큤AAAA큤de(de(de(de(de(de(de( a-de( de( de( de( de( a-a-a-de( a-de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( a-a-a-a-a-a-a-a-a-a-a-a-a-a-de( a-de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de( a-de( de( de( de( de( de( de( de( de( a-a-a-a-a-a-a-a-a-a-de( a-de( de( de( de( de(a-de( de( de( de( de( de( de( de(a-a-a-a-a-a-a-de( a-de( de( de( de( de( de( de( a-a-a-a-a-a-a-a-a-de( a-de( de( de( a-a-de( a-de( de( de( de( de( de( de( a-a-a-a-a-de( a-de( de( de( de( de( de( de( de( a-a-a-a-a-a-a-a-de( a-de( de( de( de( de( de( de( de( de( de( de( de( a-a-a-a-a-a-a-a-a-a-de( a-de( de( de( de( de( de( a-a-a-a-a-a-de( a-de( de( de( de( de( de( de( de( a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de( a-de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de( a-a-de( de( de( de( a-de( de( de(de(a-dGde(de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de( de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(de(a-/a-a-a-a-a-a-a-a-de(a-de( de( de(de(de(de(de(de( a-de( de( de( de( de( de( de( de( a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de( a-de( de( a-a-a-a-a-a-a-de( a-de( de( de( a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de( a-de( de( a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de( a-de( de( a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de( a-de(de( de( de( de( de( de( de( de(de(de(a-a-a-a-a-a-a-a-a-a-a-a-dGde(a-de(de(de(de(de(a-a-a-a-a-de(a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de(a-de(de(de(de(de(de(de(de(a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de(a-de(de(de(de(de(de(de(de(de(de(de(de(a-a-a-a-a-a-a-a-dGa-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de(a-de(de(de(a-de(de(a-a-a-a-a-a-a-a-a-a-a-a-de(a-de(de(a-a-de(a-de(de(a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de(a-de(de(a-a-a-a-a-a-a-a-a-a-a-de(a-de(de(a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de(a-de(de(a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de(a-de(de(a-a-a-a-a-a-a-a-a-a-a-a-a-a-de(a-de(de(a-a-a-a-a-a-a-a-a-a-a-a-a-de(a-de(de(a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de(a-a-a-a-de(a-de(de(a-a-a-a-a-a-a-a-a-a-a-a-a-a-de(a-de(de(de(de(a-a-de(a-de(de(de(de(a-de(de(de(de(de(de(de(de(de(de(a-a-a-a-a-a-a-a-a-de(de(a-de(de(de(a-de(de(de(de(de(de(de(de(de(de(de(de(de(de(a-a-de(a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de(a-de(de(de(de(a-a-a-a-a-de(a-de(de(de(de(de(de(de(de(de(de(de(de(de(a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-de(de(de(a-a-a-de(de(de(de(de(de(a-de(de(de(de(de(de(de(de(de(de(de(de(de(797540a5ca0f1a3c21281c4c391f52c16edb9f6473dd7c9a6dd7fc9702b1211abfd6685d0ba69f198c5f61c2b73bdfecee5c3a2dad902f5645be72776ff6c2e1faf394137073b71a6b5eda82d28911889a69bf5c49549dff32fcc8e69493fb23c768d6fdd7815184401359a21182230a996c5dab8663f488fa0f913184f665895f9b3e5318d9b2303a420c7096f7c81ed8ef4934c465df2b1500e9881cdcdfe4cb11bb319ac46c620d5ab0c102379ba84a50ee798bb5e294855cbdd49198f2b6a706d882d2d457b9f28d94c401cf6bfa48e0cb4d8d4416c3f2491e8fb449765f7d14da31644d1683057baf84a7ef947b88121631dc99b3f894943d5a567fc97b0c274cc35a2c950ff53a4e59224f1d9ea11564187e9a9ddcfee8f34078e405312a03842157786a62f5c1c1cc625ddfb39e15710ba44f8eba4f0d4c3b052faa186c50d2a34c2c6c22ad10fe8802a1b59d7bffdec1310e90534ca4bd491273a2731e3eebf93b87c2800463f9a1a9bfbc6d741842eb66857998c0c16b2581c61c041a2b136d7d2eac5c693d3f054029ce5fc93ef5fa2f0c22562443fe77ba989deedf0df1faadb5c91d0b1e2428f9a75fda0f9b024e7b5ed020496fdd35df7eefaee51082d9a69798bca39636a38a47cccbac650275461df720239907951dc1e598d93fe2839a3a337b23212efe592d328b36da6364a2be39ec348ddce1c27631e80a3944bb0b9371b76c0c4e0267f4663dbee3a26d1e2914a602af5d226a723e92ba75000a84062a7b8c990abe6dc0d452a0f30752ac0d088b320627ed34674d2cfc67feeec25f2eedf7dfcb20cd198029f60c77d4f37c0ade019f518f4d1fa11d80d9e91b352d9b772f8402c99333378e06cee7204075ce5803be390f4e611989de917d50589a15985e3ef88b44ad61f01e7ab729b8275d00247d2c42c7865fe8093197ab27a4f4eda09d65dbbb29f58b5e0aea71bbe48946f9bdaa92bc1d1ed401282dd61d8e0c45253b74b9c2c014b91e23f50bcc5837d09b5ef71e6d0a1e24ad1d1f024517803b1e95818a0600ec7507851ed44d8d3e9a28dfb95e7aedf3bb6991795a3b4c17e28aede782999dcea28b8023e09c5d82911574133ef9e259702243e088b606281a47035e9110584e9e664bd97697913baafef4277193c4d12774fe0aacc4bbd7e7393a627f55825b3f3c912790c52a2702dd984991bb8362199d09029fbf15d2d5055ed720390385aa5047ed77cede4f962b047574edf56037fae6c4aa7041331bde625a39ff0589de06e9cf5a50e0424c28d69e77e630e2f4cf522b767d029e3d9ba9d7942d9ebf2ee156fa7bb815c00bc555299f9fe67e66215d213d945268176c75ef8b0d760bdaeb241b7f34555dfa0d4c57edbae76a3ca15551ad9dd08cf88501e9cd5cbd32e892d46f482cc26a323e51a6f92703f9fb9fdabd51968a69274995c5effbf73de755ddc36120bcb15948eb9a93cff06ab4a88d2d1103d975033e10ee98197cf7a3655dd191c365fff69f122e0f11de291245bb09ca791d68d1ba8f2458ab6bb62d9dad6994095315cf6f20976b4bbb5411c42953b3d1f6e40b7956630874848324b45b61f8fc88d7f63837b0646f2d935a4ea86477a78726b5b1848625abd684d17df33632e52b44c566866e6c346667b1e84dbef6199cd322524cf523876fa04293c6a23b144d5a514d222e1aa1dc3416a9326b9c35824e5c4a1d41b68a33e6d1fe245128d5c73189b1d8fe168f04cafa1a81375e80ed04cbd984a62f27090afcc429c456c02711bf2a85bf05a179e3b4f7c9e509d22ee3d3aa347ceb72277e1af32a345ff16ec4f9caf058ebada0b001dc8b38bab67e2befc54e9037ff2b2646f179e607133b100f955442c2c2c119f6bcf6acde2d9736940e2f47314e1bd56794ffc70f17685d40175b1c5930fbe24b893aa122c024d2fb0c36c0bb766b6dbaa6f5fe7c4ba4a0165dda506c13e0b6ba4b992aff52cde189fcf7f49ce27c9848ac39626ec0ef5da6cbf9128cf1506e08e20aa970cb62353afd0230675346bc9ffdeff2c50cd29094652152a9a90fd9db9227ce38dda384d479c0589d5e39faeeb4f88dcfb23f27c34bedc181ba446ba07420501f02d5b2be7a404c03ce97c3c83bc7e9ded5961bceff4d2c66927c1a978d0f29424398a827d9a963212dea66cd862051daf0fc95308c579e48743947425dd638aa01e5d85ae7e1228fc8c68c5afc2c94a5eca32d0960007880448e258b2b47b9df128b2195f1c1362928c73b96c9e405e12c50676403b0e3699646ed8fdf3f53ba50b4664ca84e831489cf862b9db8415907fc2ee16108930a238db86097107642126152064b0fea67efa6573b56e2902eae7a0f2ad8bc6b25ddb53ccc60b9f7dfefe861ee17f7120b760f26b98af172650eb711bf146d14cd43d2fdd8c76e5f138500f5a4b58160b6babfc073af106196ab9c034a3e121c5ec7a084f239ee7d4b6e55f148c7df4743b61921124d933af8c132953d281f41bfc0954583cbbc1a3ccc4060fd2eb8b1638abb469619f1715dbd168126762a4a0cd8f3faedd9cf6ecd01e0d20db4243977afd6094868f2942d62ca4d41e124e28dd80c113ff8f392edb4387635ecca56aa712eb0bff788e8663296a0429b9e03a3cf08764d20f7b638ce178b20311bfc4a3b54f0b8a16abba579a159ace30040a2261aec48f2d94c41f75e531f91db8a02442dd274d6357f405b6742c9d093d64b960adb09ff1f9ec0d007f8b12f7daf78b8e1e5a4bba2673531c035071e2a48bb249a1b9854caba12f7645f8ff283aa5a5460207aed39987608333e64b5a7841b04c33b6b2f9b1ad1083d359df98c4870e14977fc16a30bf8f5416450df86fa242f31098a3e9d50f104ef9208cd7ca7b82243acff0c6929167115fed6a9e27a35ac5b49cec3de1c2a6c7efa05e563313782097f33a45760b7d91f634387404481a4d9ba37d9713a6adaeaf96c96729ecc857e7989a85d129f770752f19144c11a7af7473032a40662f74a013c8674f6c897dc82060cc6bd2a81d917ec37a6ab125b49cf1a7bef6766527df2480770c1d573d9ae598d91a1abf0e3e2af294aad7f3da547e47861e1f8795e9254b0eeff88e80db70c0620b92deacb16029f615131b7a194d30a0b32e0c1350e887d2ef43054272d2bcd97540b3e72fa250422a1b32a4fe1d85717e6cb30523e60476d7426aa4ccf2d0a1d1dd3cb090741dd7b10bc27b453cbd85f8e4961e5d674f1c5c654dfda8d5bfe9e36dfd82b10983d3b246914399f3be064bc191912bb14ae5f7694a7399ede3b287ec7fd56132ea73cefb373cc63a76aca10d8604e2bb1a3f01874ec57dbbc052e973bbf64f2eca36ca624fb79dd82ea72684a7089391953b6a2bba717e2d3adb321e944112bfdbd28cb2e9b33dd3266d52c34cee342b445c3514dbe76704495fe893aa0e568ee6b25dd3847e3540b9312ee426ad36a1087a857061a36273d9be53f51f6b1c4529ca6bb2a42caf0721b7fec6ed7dc1417a8e53b781ff7ffe4b3200df8b187708f1d5cddbb2f4824f06a61ab842d2dc494433a53115c1b9593c7ae34595954f9bcc3149d8151f1083def2c1f6da6f6939329915f337c3eea6ce42300fc1a683e356e635d449a5ec3a0b4b2db62eaa942c575303ce0df2596016a1ab907f78d36454771de43cf654c0d5499ac4f979ea91e332d174beaa78c3df9be351e261fde09708e8324b08a70d62246974eb8fea580da20e515c903bf1055ebeb260f16de38c3f6a9b5edb173495c7efb6f96e35c6e757af8311ebfe03c23f48564bdc66fc577dcae4eeb916c57523539431ee296f19026ad517feac0fa25970def1b83fafc99be27aac34b06106ab476da2d8b5145989c77d433e805af38d4a9d09c34f2b4cea46e1b9f49e2a31941efd6079295da45fd28ab5633b19af3d70eb1e1f68037969f7be593e2f73ccaa9c4a43949e41378422bfee3e0fa2fe699f9d4b4f26981a39ea85f19834a5cbecf61877d2e702d8a3ad9d751d181e9f9e90b0ea48cf5e1dc490117b4a87cfa89e75edc83b8c708fcfbd87ea2c1bd518045448075e5edce1f0ff27eebf029cbc0b852bb61844ac098a71bf69cc2d8d2db8f8185bf7c9d916f539f6c23bfd754485e667269f63de25defdd53f70c5996d71220b748651929b81b30f5a0b2d8b7377e8caa6d4093715216f9385f9aedcbedbfda5dbb2d43f3455666db4ceef09a66892d492615f03f5afe1fd9aedc63de017af5ba76f4f8b6631d56516dcb6eef54017104587ddf7936e1baa8632ab8360d5334db6dd532cd5d49dcb398bec5286a8bfa2fbc408ca03b7bb6a295d47ebb476861c2d64d097acc6bef603c8cbbf5ff5f5adc50af13892b89d56804169c60700c693d31281f40546f59c175cd56d1452d33e0d698bb0835d578e72bb488bdc974f7a2fe757709ef09f67b6374d1de10ada40b7ef83ea92a3ebbd7381c3f428c6fd0427c63e659a8e3bf114f0cc5c4983cf1a4b76f477fe7347f32ccbbdf6951e31e205771baf517a6a6e8581998910f1e1df772f533aa5e4de7fb75e883f31241ab17e3cbb1435d5ce3e4a322e863d4c65f89fff83dfaa3146cf4752a7e548baa7e272b87b1e393fc3fe44ceeef9d8967496178dbf076e7b0564b638c4e260d6e91877f2f9ff75ff0e4139158945e075af389ecdf07cf8ef76d95b0ea433856636ddee87fc6290af279cb38f23cefd138ee98b32631594c804e997c3d9a179573fb77ef12769f833bb9b3d68256f90cf3c377a08f120af9ea2c6f86b0c21d2a8844ba3a6900c2b1d59f2d783adcfa50d5effa1cfac3596afa5b692598846598141b1c75ba1df9eaf7417f22c878e1b706d6004c6c6be8dd4e730afded30938a7042b74ee6a8eac48d07129bc6f8efc1c790eb684315d639b98acbe2fbe92327b6e478de801d94cb924460d6b1888f768dc0a7f73531743c030782d6a953d32ac5902ab5460196ec052879b775bac8d3740088f223931a66f74db0facffd16ede717f9878afacf22b5bcff8dab3b0956cbb55915dcbb3f67da5690f859d5209984d82be0d5f5a818fe0361418167d7f1f62727fb63146880a0f2313d693f5864236d238ea5e493db28ef2c53a53a410a65498c810d138c5f9cd058b375e84d83a5c2cbb3ab0172eda8d4bba3ad64d041a0a55125648dfe880ab59096e57bb2863a7fc8eb113023a55a92c6ab03c86f4f8dc8c9999dca23a69d485a65dc038f3df0b38c2ceee09d6c00d449e5f064d503bcf0db242a6f259ce28cf508322390d6e142d99f2b468dcc6de99ddbacf915c2a78d7b7a7b69d9af0a31feb344306f3a9c3df3e4ada4c8f423266847432e60f79973cc32fd46aad2af2e8edeab727be6ba5aae3fcd803f6aae212daea6543833727fe887f1e6baee2962d85dc5d2393ae97c3879c6d9178e3f4dadefc42154bafc916f4dfcb7e3b26444cb688ead85fe038025116f23ca91e62d2258580e13e269ad798e97516bfd4a282e8d6fb20232b22a4abebfe6ab58c7833ec29b3cc5e26b097978bc32e3c1d296d3f21a5eb6557597ca40e2a584c6ec75c66d66a6dbd17ab01f91ae4c76e7897501932f28d645d1e7b57611b5bedfde29b238f83784f9ef3fde9dc83a9965d2059e65ff43d420ebc4d7662d187700b59edb267c3ccdb9bdcfd222d578305adf6c511dc0aa45be2f75c621e3756453ae351a0fed53861fedf0c9c4033bd7adfb7a4608914f959582328f27ccee84f95465ce76008ee94f2588d733ea6ab98a0a586a01d4f9b8d2e688337098ad295a78b63d2ee7b20ea6a90518f84e0cc4884aa6f9434df5f39ebd9845a8b4f618f5233c8592a6977d47609652d00587f85aea948f057683cbbc74abe34854859a1988b9e72a1dcd4e2305031802078c02eca75fed7c6dc2b562deb973872b5e1f6e7466b77219c03edd4d74b3754ac302a7614592b681983244d32ca6ca08c2d6818beb3539673b5b30e0bedb5f872183dae75ba9196f5d17c11f8e67219f43e25f26b52e1e7c91ca1969ab84658d1cd90e76e6d91ca0e1cbc2b3160651bc52c74e37d291b1975d77ad5ce5293ec28a18e2bcf43d4fd53c9fda795515117a7bf8f5b7c8a1474ae93f3d3cfa2534770d8e728ca4c00f5781e30fc403ca22a0bf9138637f99bfb972b3e2e3dc0bda13c6f8881a1235d9df8f98cda7d0fa3a8bc91c2f470bddc94f2f9a80fdf8aa4145fe0b8e1b8344f88f93e929de7163f7faf6e2e1ab1a8e7e34f2d0de8b123dedd9866d3aab137b2ca6126e8c8ecf0ebaeb6d1ffe0a43b2f570aabf6ebb3aa7a7f823a276c031617a4201767ece6d845d5f95335e25c6566dabb019963e1786707b1df55e4d27d920b41e320847b0050d58085ebb741acb3ccc4a52952b322228da80ee0cb321b032058bead79451bfcf8fc6eb6faa752fe5b0299da061e0daa39a15c101ef402ea80320222dc219614fa0eac0fb01e2ae753032772db3c60b09b1154a38b65be82e9f91b45ac02648e547f0ec1e7bf4872403d243c48bb7a66dae50572d5d66f760cb3afc98ce28ee8b0d66f958552f87294083c45b95f8e62f46452863c888113a2f88b02ff4c8eed2acf3ea07e21ed98a3971b8d978f05313ff89be70a29d4bf56d3f9a1c5948c14bc2d93238d0498e2d20505433abaf43f1829b86223bd743454968be3a38e90eb63659c2688bc91a914e7d32484be1ae2ba2b3dc292cfe806e1189533ce4e88625a2bc636a86e19144d69ba45d2ba6aac09498bca5096585e8d4ce41030a95ad74a90a210194ceab7aa401dc263b9ab18ab619260a913cc9c1486d0b4a98173ca9e194ea9aea126699b20af8665fcc050aa21482876528d7780a1343ef44f81cd4c84406b8c4e69db10d4ce1001813e4af7c855045d53853bde3e4c15f6699786d6731691f56d9e1f7c6ae019705134b3a68555f210ed1fe1ffdd104c3e57459dfb1d18b55389c0b3d180df87f1a821a4df49feb55fb58e2ebbe1a8f42c12aa2700b7ef2cce90c8c2aa0d84d781ce4561d4ad80625e67db902bf802c49f1cbfa86074fc92e235e70d0972c9fb3ed22b9847d52a59e9d574fd4d6603f76ec755d34f77a51d691cf9fc34d4b565cd09a7b86f759416572e8adfb2a8831335a5235f1a7bcff9f758bb531730c38d1c2192e58842c1efab7297b5c8e7fd9cc52538b88b3581492ac880490d4a5c8079a619c2dbb65be1bef146b9568eeabf452f650331d9240871189ee0529764f557ac8b72919303f9d9b96a070dfd31e7830770aa66825a8d43432604f1dcb169d80496fe59350702f84a2e48307e937dd483ece61710fc4082b95171d41a744710a75706a9cbaa548013d3f1ad1ce93515f6798a1597d176abf6bffca55c9fd87f4f50ecbde680a8ff5011c5bc6d3d6c6b21a3b118d87418f0efb777165de3308900bbaa2379eb8e2f897e441d2ab1f4e8d8075b19d83f470a66d7c501db8f42a972ff313d27e352ae62139797a4bf44fb9d39286831f41bfdb4c25733b5355cfaf49556d64fddc5b755ea82f1947e877d676bd638a6e20b8066f8463dabc7a91e955d8c60dfa50218450b7fd3445181e552771932a8961072121ea0441bc09bd11421aa1ad89b0d0d47bd7ebdb4eca8dade960b1b4ca91340651bf07bc204aeb50b49f8b43025008f3cd2162f409651443074bc47de5e6162adb7581b86a9dddd938cc10175de42136abe32a143ce275aacac0161fa8486bb85635ed4815969744fcfa9f4f500cddcfa01fb7bf4ab8246ae4386ac0b0fe3fbc7a52473093f78f8687a0f5bd5e76d4c057381ae3e4807e8c24c102ac91339800aa33d561790210c8c03c1f86875b6d419e2ef2e06957e267424eb32e6de0ba161c7919d1958c249ef7eba769b2b8d58dccb21c0b4c79e2c9715f1b8fb489ab9faf0391d16cc8cc5a9ba4c43086b6b6832f4d0fb8c3e8b26487ad9cc41a9b7eab00bc13b038cb97f45c6b9aa9a47e2059cab48a912a86142e53b43cc0a763ede9fa948a4705dee77314f1e8e5a11bd8a88c316d0558ee843dad8d80a1f552dc665a39b56e4cc02b1b613f136537aad874d6d336c04efd2e25a0fc3f4a78e55c9350b0931995f1c396cecec3e147deee08224d0f2c50ec7dd537004a0c9f0493b555ba7efdf7d13e30e6961e3cdf834ed4c0878e3066b945289875f854ee6c7f72115c2e40c75050d6f77048622bafe036f22563c2bd12fda04e16e6c0543b6f838f7f8dd1f63d01a7f6f80d9a4568fc922ab18d0852cb4ac1ae1005386dc3f1c8a0a0eb38557bbed7c2e38f525671c468a2828e5caeb86065e60077b65251841a8555dcc081a2f1ce143e6e6eebef83cc67b81d6d1e5ca20a90b82b7cbf1ab740a3195e7d589142fde5821dacbbafdbf3efe3d50389f5f369e586cc19c649ea3f85090e55a14eb9894db47ac9876d17c667d9711467c688415b00980fae1b0c2f056bc14a95951385de0f4e338295adb9a1ea1bbe4f291c54361cd038e3504907b36080b420807a31c4b27483f0f60cdbb97407ecd794c8fb8581bf5c1f4f0b76b122be5d7e86dfaedd7985016204b0fee912fc9910b2cc2014ccb151b1ff68dd32c0ea35de3904acb6fc89a8ac263d66169f01ae95a1ece9429ca9024d0b4da9d0883560e46758e6cb70b1eb1f0eaa8be0bcf562493809cfab922e1a5d669e9d73685fcd4ac588df1c0db9e06a57afe6431d84445e799a9afbadb85a6bb95f12ced780315f078fbac718057bc24a1accb1cada00a7a7e034a8e0e6c3b7cba896f09493e6d8693369eb650a9004a21388ce87a5fe7b2db882cbca96d4d8709c846484536fd633ac1a9f7a860a050bf96542a8deebee58efc1030445ff049c91e6484dfdac0c3c8a6dae892f5f9f6032301caebf565138616f5b8b36c070025aed5e5a2207b8f7afda68b78d8547a887d707820ef78cb7488055f5619cbf828c54b57a0ff33a8b96d8a9174b3b38805dd10b7c74d0062c4e4489f35344e1390f2d5f23193a99fe6371f47cf2a7c62b620dfa4116d2895aefb468fbef0dca72cdeb717b3fd503c66c5527e3d24f0364a51ae6aa74c52a6ee0ecf3019c7b6fafd6ce729709dbfa58f9434d650e5129b4a4ab2ff5d9c79c625bf7ca97c50e792721d0b0513821399642730eb8269daf5151fdd34e9031793ae6ba4d8f1447cfb46c4678199f75e5f97188caeff7519047df4de9bf04d88711821888ad5f46df43756a38af04fe21b94c5abda9a1d712fb24e9ef5d9412db47961c029ea8b0f16af03bdef0587edbc65e459100401b3c80ec36499a5dea974cadb6e0cc949efa30a0f852142d9839189cd7e996482946d6e61d4ce990b6232f6cdc745a69fe4a817e9abc7915e0c2c82c83ce6411860356abb67ca06ecd228d4054c7ce5886a35201ef9358fd44fd78669f763485e7ad2da5cbb22ba0158b8befde765d0917319277abf7986909e31b791d317e179148c21d538356af560e34ad7325525946ae7f08c600b0c9440f00fa7e4bc6e1ac89781a9e9633e34f41847ac3f242834db3258f633549c721abae39f2e227de953f518d6a2ec47f29cd927f0c2c7d1fd2ca93eddda2db5cddbaf0dcefdd8ea65468b42fd4093cb0171ef6e3b4bc26ead90f00313fc127bc57e71119c99fc51edca852d649f403f069b50757483433cbdf5c45382fa79af9f043b9b183e546c8eadd0e9d5aac014be58ea99ad38924a3bcab1d8ce9762f355f3e454b40fed624072abe53a9120b2f39a66e8172e75b6f344cdee18ae6035789bab130d6137ab08811b0a342075416a045743a44f803312ad23e1aec808239f8fcdea0b98e061f52ea02027298f4f38ed160e959ff516579e709e97e73705902837c2c62abe8ac665e4e7ff2848649bd35d094c504f48f7c4ee2a24802c633e2aefc95ae4ecbce7db38796e597837747c83625458ff3c37dee406ef03dbe63a38cf5abe54d852f4da55e27d706fcc4c7c33a1f4e97959dcd5ac4d215ed5c99ef16e34de3f5436736c9d94c511e0cd2793b3c2f88831117d3b077b2ccc590e59ed9f0def12de2f6d3edc778281f4631d7ed98c27a75313d622e55e57443adfb99501e0599e873df47e3464c557ce393c5298e3b2779a3b32c9ddc1506b1fb6000ebd75b0c5073c4eb5413569ed94080e618f04163dfd3fbefdacaa45e05d78afb28aecc298f9dbe098ea453109b03d68c90242f1b04d55dac575fc9dc71f492f2fcdac1ae960625586c2b8eb43ce878966c9591d9e350ebb971c41c52034cfc7466d9432df625048811274e9148e8805407a2c0c3d6494f05f71a88041ea7668357961a379db8f969512215290033fe53ff856ede00cc0d1491b246fb825ca0630bff09fb8d5215758a3ecfb731202aaa1fcc227a600def03f3cb553948e594b712fa0d77567ac23d2005dbb6fc45afc49baa47a2299c456d1c1f76fcc3d4d6305cc4b818ca248e9cd17e93e0339d575cfd00455815f4cda7de8ce932cf9acd0ca08e278e48237f4064dc7a9e5f9231b55549cc4b8c677b1fc085ac98290513b18890d66d807eb16969d0d0e9f26fe924c86d2ddcd5afdf0d69bcc959fb1fd1d475c81987c62ae08261c04adf5c91b9c98b28eccafbc679e72a44bf1d8e606e0e26fcac9fb59079a76212ba7b4d7a5d00e88d2ae923e2e4f1c82ecaa514a04c7fbcf7a83f3f041be885ace952c1470201c335562a81672befbc22f4c80396be4d1ccba6d088d6ed12f41d448d46527d40bd009b935c68c3604c88708379ffcc906861c23d7a2eef0bfbf6ea5cbaa8f6537657ab04e6b9884271004eb1abdb4f88fea8e442e6ec2ddbadec8db88aa9780e91f0075af9446bf5f8e140bdc7dad7a3728ffa215b4cb45706991f416726c350483c910a6c9ae9e8b0ba64befc5d517e5cbab9ff60fa412a4f1a5665996fb727c682b128f41be8c7fc892ba4b5e314ac4f8c96c3674b55470d34768159bc112f1be74d29f019b90399ddb1d26c6b906e91f9da13eca5cc591c1e772be642b264395c722cbabc066028910d2c4d654bb8c9d9dd482b8810642f4483481eeffa7326ac03ad82a0e3d45d4eb26f01282ac642e9f50197116d5ed1b227382d153711b22a968d469b7dd1d00f7f5e87c31d4ec124ce9a52213d95ab90cc0fb7047a4566a2c8ec5d3b4039a605fefd7c429a8a1320bbdf50faf890adb55595e9f6c6abcb7fc9d2576438ee8ec52558372a947dac6900373c4037ebc17a6999265d3fffd3d0fe2214d9c7dda3d2ed1b0d5ee621465fa5cf7b883f58bb9867e969e39ddc1d620cd730039beecc14e0e187d26c75a83c82b9f993bef6b34e05772c01dea4e27a87a8743f432fe117da1e67415cd1108585094bbbb01b822ab3124846513150966fe261bb948f6b85ca2b87333f4ba1d9828c388ce13646b3af960d97d2032dfae3b0c62db93f7d3aaf926ece9de2ff8a5e14b5036f87bbbe90f4513483f5f4720fedb7c14c2b9829cd7c192ee6a00e0abd8f7fbe51f068c69fcc8acd3871272e9fc2f87bf9147e1f8b7ce55a13a310fcb3163e8a066f47dd2d609621712aacc1263d2a2c9d8568c84a5a82d0ca01e9045e6fc7dc47df780fce051c121252c8f4fab1a8d69e410ff8e327cd0143a7618f90ef847d0ded3762e9d351572ae8dc5614d6477c919d561d7b0ab9d23c9664159392047f3c5b98027d2eeb1409f891ef4aaf932a73569883ff8e1303b072c8289e04570552d90552f317faa4f77920ad7ef30aba0db3454b53b41a1c71da1b0d18d92cc63b2161e9b8a9260f34b80a5531c9c8098a6e51fb095848380333f6370ca4b71a47a94eec8598cc767a14a2328b120ce0f648d3f9c5c791a8bdfeb57c765c94a47ebdf9c3debd2b450ca6022e08814b9950f012ba1ddf2c43cd48c3311f81a011b7c8781a3a57cc6da4f0d273ac9d75637af7300095b7a71ff1e358c0cda8b24f22e5b742eb6779da187e171f9efff2c3bbf17ba51c6a011cd35786b0ac20b2f2c0b51e0a824368f99f2f2124afe13be5c603d8ecad632c48db0e02d249cee517605ef2844c36578b0c936c5e4f9f8a55acbd8e90105cec4998db874049e5def2ba11d208be6b2abc291a66567233b8ee1cd2b1d4d92c13ddcd31e1541c287c63e09e33c797667c8a8f5b5d77e6153c23f0b9d46312face082833368678eeb021455d4efc7afe1ca44bc8bcf324abd593ba93750102338219e0ebd623cc6ddd07fb6ce116911fe3b2e97ab359f5252149fa2a6ecb076f3692449a351988a8e64b34d53f2282a059ab34423e53c9ec5fce02528839ec38e53f1b254980059bb960aea20dc7affe07a41db7f207a8392316c9ab47f2ac72d59107dc02d98848e0396a4f8aed6efd8f8c0c3f0cda7184019504d42cc587ed7eca97059a4433697971cd1f4679b161a83a6d312e94a6ff3105111fc2d7306ce47d906c7a3fed4834df6b676b434fab9849b274ee6936b43c6b2e56b9a3a1479ec1069500ef5f7a2c576d688b780528444d01905e39720ce5bdf26955c8a1ebdde93b19230a78d6f3dc4ac95bde8f014851b8c611b67b7dc68934d899866a24e3445343082956c99be26a78fd0131e08c788a40d209e993c26714332034b5dac984eb33cd665f3f782c541a9278d2883739732c2f91897703a770aa5d9ea632ae6265dadf9f88134a10c2600764c894ed42a0861ba9047891c8f4c8b05efe7af3bdbc80618b5ac6b9149be3a208f3e7031925982fec9422daccb029bd52f4b4cbd4b6ed1a505355b25bce9925f72ab6fc3cf2b9d9d6c5a07a688c75eb33508975aaa5072acd86205c4c3f291a91e90a698c41f8b06c0cba73b11ee82b37d6ecf3bf5c33812276febd180bea901c49840280b9ea2f723ae81b832cafb11e482cc6dd2994952594ac29a6e6a6a3f005dfe39c244e935ba04a289f47a0f7eb563343ae2d0fd397c5bfc4072757ddb3e2aea8f7a3a1828d91c0e77eb7f6f66e7911d3ff168cce0cb893af18cf0396d3d16e39aa1b8024307a6dd30bfbdc3c5bc668851e0285cefc2f81281f04dae0dbf17bee7151c628d375314be2682a243529898211c846b83966aea1a093ab3cf52b785be8a895744f70625e969e9dc2be40295ff529fc4f5df5b07536422f2e2fe2f9a5bdbb0fc0027b0e9f8fee219a84939bc059a9227cc10104f9023ff50c21dcb345258657378bdf6fb9956205774c44a86280981a6601dad41e1b2ca51b71cfefc2849ec473f21ab62ccd2e5133781cf613ab96eef510ee6ef9d088d2f8ab8e799dad5c4d52f73cd35a9f913dc294a8043a09b1acdaba4dd0c99371d7018f82409dc19f5477709b137b60a737780fec4f8144c4f3e97e68bbeb1f9ad423043731bf8dc4ac6f3fe325105cabf63eb8895b888e2e212fd75a819c6aa03c170f80524733dda6bdf8cbd6306fae716b68e7d6e835f396c51b7b1c9b40ae179f465515f4d7a2e09c016bf145b86a41390f2ac5dc38b7693cc9ec3262d4e7bd6ff6ea0815901bc836af8921ed886a6b5a959b14ae25b426316f6d477b0be802aed9cf6b7372635c70f3b9e01a1ad06d63e4a6bf24b77fb0cd030b99df4768dae09140c4de307bcdb8fa5aff5d0b2e239b0175bb5832e5b848978d0dd1c720afb167de7fe0ca27a6d05a1a9b6f25633425851a3586cfb242955f6558a1b82de968b1e91394596dbedcb97e2a66d5377d94bf7644bacfbd2cf193da36fb7f01b4089f9478ce6872d4a1686e2ee8ddc9c1f8e5050dd952197d9c01d8c15cdcdacac135dd8a3b9c6241f489c3b9f89decc3c267f878de65951f44a86521b9ee220027f48268bf4fc91a4e4f25200c134db7857f68556a19fe4eabe6b2fc5080663a1ca656c702ded9205722db4e5b56039b2a70548f6ac41b6b2cb56c192ddac3ca18eec93f672989f545ecd75faa99419ebc50965ad541ac4c4e556322f8d049afade91480a9adffd820fbce5b16a6026f561f0f7dcee29cbae72f89b6c0c8c011237277199e0d78c5ee23457585816a5752d8c878b6873fe7aa8eca1ec140344b5859a5b30c2198742857ddf35ef29546e55e1b1c2caf00696ff153b8be6a176856f293c417dc24d30807b1f3c4c55e4b1c67012eebcd027c13bb7d848bcdde7576594871f18a30d743e59feecfe64df8e268b712bc927c0e9b31dd361b4c1ace7e3088d6580300bba8277dde7a5f4b591db11a77f112740ea6762400c64bb74645787c99b12df173844c08581aa40f2ba0aeb3b046e25285529148bf9948595a5db1432fd0b3df3a1bc556240f38dfaf9beb49cfd4ee843e34fdd576137ae2e8693ac95c5ff1ed873f62923c4392e296a3a905898b181bac6619d34c66255dd8a0b589f86914da09d18f7e66551e0504511d827110d5cc85d608c007259a31de8c6e572ba1ef5e2aca9455c9a30fa301030a920c1ddd3eb44be599d59182b14dc894e51cfdf81ce258b95f4dbac09e239ebb3b74bcdfc1605ffcbcc12cbe4da11206e4c78ebb60458dbd1c23fc4cb9ce261c4093e0de9843a409710c91cfd82ec9004f22ef1cd010b69f4898418e3fb7e1c7245facc572c95b5a3e64018ad8c9f0b3dfbbce4b3228d0f9bcf096c5b9306f19a16d96805044cb3261d6fab20936f62a65db379c788f171e0c6e0e4821417fe558f08e877cd7a8a8d67573aa30874eb37b462016100b6522fae5b71d7e447396e6113700cf32861287e56f6c90304b048c0ece9890d1da0ba042dc2a202b82d0d3d45e5c3a7b29736e1825668d127bbfa421cbbb4d7682082c66de498b111a24cc226a4f0a80bf860a9959fb0ebfe1b7ba2089248305d4b8824667fd698b8603a6d04a3a3a9da6d75df566b2a4cb27be0d9d8a65344bd947dacc49c68432e1300a1b1a01bb1405d0406dc50fadd70b31aff482b9b8fcd4f7c8cd013ee0493836a6dd9742a19cdaad0f941ef93e9ff4558503d7e07e74bdaf8948950d8b17ce746cdcb92477d41e7a16a30bbdc57100dd67f5ebf513b8aba7c212215b12e084992b445c42787ef24616c30243b6abc468fff1e09d42a4da9819eaa8fd0fac775dbf44e8587f794870bbce36a5b7f29a192d89f1b525c045d47300411dff6f7189bc9056c551411480233ba1ff97f28717a1cbc002f5591611ef44a692bb4b62f0a26d71255533e40421b98461e10cf3c8e27966c11220c1977dbcf8cb423688a4749e42457586863df637239d53dab27f4536215649667c6ffbdf3e56025d73ed12f8e48edd6751faf55e9df5d1a29d6d8f43964b3e0cd3cc8385fb1d55782c3f1bc6da6bd83ca078cedb69707d1f7500224ebe69d439d9ccbacaa965e7673df780f9fe6448b836b1dc105cc152cd14bc0ac715990efb4242430b71846e793742caedbc1a383a84bfd720c89c919a6b02d08123a49b5b37f055ea6efadac5f766377ffd0537db34def545abecb66ccd2e405eebc0a535e85ca742b9127c53bcbe639ae6ad58b245d9879be2a49a394f7036c454c1ac09f8cb5d4fe9a6012eb3eff3ac1486518b23f2748c70d87111a7d9c192e458f0771873eb41149545d6d6a9574c30f7ae384243de93167418a231ffee814cb9743616d821a01df6388da8b9c3d8892efb2c94d49a5ad9ef85a8fe3233aab62531d5b2cc7378be3c756af11d45a56de249e21c3fc94ef29d6fca62763848c5ad4234b0abdbfe4dc0832d421360acd7a8374b05f289846dadd541d20e251f76dfa486304c496bde8b3f844230f349a654dbe793b55d3afb1d9b0097d43faf24527649a8c4d18d92d5cdddad1e7bafef2dd024b77773fdb5e1e0080c3cf0a2d1e77199da1263d4934b5863a06be5a49034a5b44c27fbfb6901d55da0e94644aaea78c73d78883ffb3c11ee5bd19816f25c7cb8655e4e92f82ea3b88ad071cf75fb9090e30be07a8933d64f37b15cf832edee2b6a3fbbf90b965069bb1ac11d30a068fd8cc9fa95791363e62a1fcc5fae6d9e4120a3b2b1b20ab4fb18425ed8dbe8788be12ce7e7d461dc22daa901791b27f71e33cf2b6b9240d0d133fddd572cf65fc876f805046306b0eac4554b581a9e8bd588f4538fd64b1117e0889e5068a3f653097de0db7deebca2fc3d7463052f9d3b30236721da52370345f65c0950a84dc4d6c32b8a0dd96c2137d41b3d1d2b050325898eef41c01f6da3815f7777a7b7d691bba05eda2be1a7a78aa3e181fb036a9bc1397685c01f5735172acd7f8127afaa764f3c75b7906ecce2690e70874ffd5f320048881e628afb9a494c9cb00fa26d42bb803dabc291901c7995656b998c140b0e416d8822a4f6e836fc57c86f9b86e1a07f42af6a17b32dba3ffae4f6aba137378a25640b766cf441dece42a658d617db4eb23860cb619f427782e9c424ddf0a21e996cf815780a7a5e394c8bb6430cc410e2e04daedbfa1cab971cc8872111ac6c8498aeb6df79b6b1cc33f2c30d0a2299e709867244d4a50ffb084634f5c2eaca2a0839c485bfe7c2660b9f8214652b2f4b5acb4415765b902fc88072c27af46a059435b758c32c31e3411f9c83aa1e037b0e725ec0cbc2fddb5e232bfa9d61f289a422879f5421a0d141f3cce2f4cc2e6f01f67f7d75b09802a2567d7f989032d48ad8a9e7b76fe6edbf74acc94ee88ac7f2299e904f24fa25e2e0a10ba245f04dd19860f1f738128eacf9caee7cf37cbce033be53a9011f2873276eb23101297146a420568c50cb0535d44a4b67fb4d0c94521983c92ffce8b9c74d67434c614726f31530e1a2e9052f2dbb046d7a18d6c7e9144e4c75045e7e302be117f91ebe27586ae4e037dfa8d7a4e001dbd8db92a7e7c8532b5f5bf86e77fcd28cc382840fd686baa31b0a6784ebd973b3fbb7278ca87a2d5e26f50290d1b8d3bb3d6d310a32da27d745f9b92acd763369de9fafc758bdbf357de0489cd6cc5f110b4ae8e911000a926c2abaa145866736f3148acb8e8d4161c9e5dfc156751c9a836546b5ba4f556865f19a83d821f34cac520efbad12d1a39fe84e46ea0185d4606aafbf72f4fd099099184a283f06d74a01970d5936a9239c3a0d151748fd4f8e2f2cf4df78f1f17fe50f8cfbf6c20476795962aa711f6be4a7cdcdf1f638d9ee6933ffa6147fa073fd3dfb4eaacfc71050b3ff514e79108b97930dfd7604ceceecd2e1871dff1e953a3000f4192af142ab37e9d1d5f6902b987ff37eacb38c515391b93f592f154e396b3c92a722935788cb02d4b3284d53ff105c14d8a647cfccc2c27bc611a7d8e7a085d6f6564213d31741cfcecb0081d8d12cf959aacc0824020a78076542a9863f40c0d3ba9ac8e26ebe9e3cc00672c85f00d8a31b56a6483054c2ef5a5cac046824d224c1b47749c6c4f2f4b901559eb6fabf8394cd4cc67b02385fd871f723684f7062e98534659fd9d1d7e4b68d5893097f5f53c1aa7dcf7717fe359ef52ad3bc09ce20dd10cd49e01f3fb95caa9f15d525fa347789b90d5f635be28a94f7c88c78c15cbb0aba0e233c8134ef2197b7d6e482d4ed581433bf4352e45113bea1981f73a80e3ca6aafee2653606871c46eef93b22744ae5aca0038d799b16e99e6e6860bd4033aa737a24286feebe00e71a2bf1c4229e9eec4fb05302dbaf1fc9ecc9a82582c44bca6058eb9c474ab00114d9c19b0d54a7fb51a6108500eacf7f73b49696dbe086e9c053d19e4faf1766efcc19b718537c436f1ea05c04847311cf12f0faa2599fd690a635662c8afb9810266c09eda875c9b45c51cb40038102c69f774712527a3468d0170d881298265b14699c7e808eee56d7ad9eba77376096ae6423e117d564b0b06f42a9e7c3b5bb5a707b9408f5ece6f72785b290886d81dc265de8afea1eaf9ca00d1a8a0f0c732110eed7b477f8e033d81ce5b00f63ae7e45ae5563d346a6440cc81f1a8871dac5f11dd14dea2bf96b57391c10dbd47e0d15f161e48c02ac11b8bf4b8901e5276b242d313c27539e30593b5599e8c29a8126150b16069f15599c36468ae879e81a37ef7bfe32c0661d62d68c16443f116bbe4f798d6960816790a486c4dfa347271dc9708a57492be3016a5fab42046332d27a95a8f9191cb0985a85c83d484824120969ff8b4002ea44f376d1bcbb5afdfc06fe34b06ce6f41bf03e9930faba3a5a9cb362fda79e5c3a5e741d03741802e9482848517a3b1fed44b53cd0e88b2429b6438317bab628d1c120ebeca924cdb9d0441074dbd7b17e86d982c70c3523e879433ed33027380c0329d405d41c8976939f314bfc69fa2648194f56458c184674476566234e6ed9b9ef46b9bb7381fd87de37fa49404f67485ab26fb7753f79d4b39982a564ce7bb81bc832a56a026b4fbb411c64552e6f1caf7b9f674a05a80fb5af60054622e06687d45b0c069625a3b53b7f1a315dd00dff35ceff25737aaec88c3a688c34062942f73a5977ce1dde81eddfcba280df7f5c6069f58c197509c54ea4406664530207dec26df5ee6d810e071d9f29961d9d9e9bc48db3205d4088b1ebb3effefdd2353ed5b2e77db330884d17075273f506df402b1a134ed6c9d32efadb387ec26002a4f82c522eb92f90e40667ff85db6a1e952f3410237274f4c040d44bd736d9034d84e0846f26694caa5616c8b4dea7b901be88dd924f1a2f91b67cdebf4bc03b8104dfab227aeecd8b6114dfbf4ada5c6e278fa1e96cd379d04cf289bb45c6e0dda5460cf35e56a3b0e84d26db2a1d84a614b89a805c898d1095e58f07e5437db661c357f6099d6de069de2e1004c6f715fa96f3113996149a3571ccb806a4b1cf6dc730fb6d212531cdc043205f471e5aff240d92346249fd37c9d8326b1bacc24a91d6c738d37337bd3a16fd2f4175505a2a82e4729c27e611b3ef754485d6e4be32d7bceb994be3ca57536fb7d1e183a6728bea2bfe7bb489856593559db2bb3e25640fc4697c3f3c8aa69bf31a7c5dbfbbfa146a142dff802968b5ebfdcb69cba734ac5da9f24eb7520cf7b0af1feea29f5a5113efda0420d0843a6097bbaac74b3a91693281d867961ef91d7bbddfc863818ae1edb22e48897037b2162feee7b1721d835e452cc1d3c06fb24c3268eecffc4aafcae545d8066da7b6299209c23e1f0602c6710c513f09da9b432de2af1b54304243cec1e5237b5e1d6daa3b5afbdfc1fd266153344a13b89f44dd2faf8684844bdbf468974bd6739782c727c980e03b8ba2f49956eaeaeb1c0a4d42fb5b9df63d72f1bb320301812812befcf470a3a60826193fee0e24061ff94af6458219da85f78de1e9a746ed2fc7d74ebb3082471785eaf4ff4eb0f27e84909afe1c83bdf3713e6a1346a460f8a5da891ef3ced601f2c18b75e3b4730e7e5d0b9bc2dcd74c9f856724b151e81a9d9c9c057d9b37b5ac765da6e9ca8beacfea2ca1e39af308441f4be172661942c869b57c127eae2f6ff7347325e2e65f23c390b7e6d297f0c37cd68eb15bd010604f49ece90802c1cfa6a13418a6b32db1c0afc08c94901614e2b43688b715e715b3431cd4f44d6f425e678c27a5051e823a4ab0efa6d63ab0b26733884210e7f297436757a15889144d0da59f511fdf6e3f85f91351dbdb4c0b96954c242cbd5cd5f4bd3d08fc6265575d26a3eaaa1a106fc7c02432c96066fd69a56a432a97e2cbd06c40a46dcc63eda33ce1c6e47b26ef6b3b05f4373264fc0aafc112225b6de077715313d7a52c726d82452bd5445b0b2d068595f512ec1f2ec95b7adfa2dc7a5f50a1852da1df043bd35d3a59550782355ee936d67b6ee5554eeee954b4b95bcd4220ff84c4193f30bcdf012cce3d91fc23c9f730a49b5c8d0c0be13c5aac7e9f3a8b6d2bdc1a5c73af0feb3231fe033ff66fed14caec6af1c86fb26f5319dd57a7924656f4c8f1d9e342486bbfaab48474c182b76abec4f7883cc293d188e275c6c32bf68e021f3792806aa71f59dd4587fe344039ebacd2bc5bc6fcaf1051071f08985e8cec97e7ee5422f8a711fd191904635abb9a74c5592bc4bb0f877ce9785c4e2a97e9d850142c88cf09ad18beae90bb498f57acd7465fbd9fbed3e43137e294f88d1534ac6fe8d51c2f97d46a4e7d46a29e3354bb38b27773d66ed4ac1fb71b42aa6a043fc0914b7828ab5a00f7738bd54e9a23d3719ce2f040f95ff853e888c677140379c0440bdca3b13e219bd7d395c294628e6d95b8f144dfe58174d0c47131ca368b3041954cda7ff1835cd2701807f3e53c131e1401f4eff7875c0018048cb3f3831706505985878555ede48accdd09801c3d5cfc3351dc36d5fa3515f8d42b4a3a4bdcd3dc455b9499d185abd4597a2fc16eb4dcd2fc00b6a5428f16377b37d63385f6f770f784a52c94014cbc65a1dd08a6a5bb24931f5c4f195be7e02865012ba7c3718d7e6cecf871577f3c3585ff51b21469381b39e4bef695a22da6d14ee5ac6dbbc99976753e0580b3354b91c07c4285164621d8fd9ad4b2b281b857010e0d62a323e3c274b0d3ca5872521b24aae6eef87e1bec6b8a2c681197530d8e958eafb7c86b89d3b00154bf5b48accc263d137ac69d35c64bb43efcf682f590fade223b8a2fd1a26e6f92bffab1cb2d82b9e18b2735f64fb8aeb1fac9a395b67644feef4b07cfa4a33f91d317da0af5f4078050e707e3c8ecb8b345cdd576a61e1c2f6bbc884eaa92f5c0c2aecee8417de53d7437afec236e4e1682ecd24e18f9f14696599d67d7046768738ad3fb8d0a4690c0a3739dbf1344eaa71e909f450133ba59403d932b5ae9d974d7f4b68ddb07437864ac1bccaf892f881fc6fee3f70dd8927d055939f9333cf4e1fa5eff4f6ee5f89b872e5820421aefe09add7cf0671c8085e4273425cb881f3cc8624dfad2a74bb192be186cc5d02daa75475304af5a968c0658d86d12d8a8bc619a608dfa626ae511b8676007e1676e6a0def07a2ee58bac42fa1e7f7842f9d98379f5589acb720cd0bd5ee055a3ee997c290d012dfea40afc657bcd3ddf170e17d3194dbf37750801aab72d32bfb3e9041832dbd863fb7a508f9a71ce3940ff2951ce911376c1622d8d601d6d2dd1e3ef7b4e708d4526ecbc77d009892af2ab1bb4aaa9f4f34f8bee8e1a2bfddc7fef83fd7cecc8f3481b4b0e046958ef37c45fd4018c539bc4e6503407e25343469314295e1eedfe911c490a3a163dc1356bbbf22b8fcda352dedbb4e8e7886f8e57ea9628a135fe477ee282d1b5c51a11d7797578718801a7432897fd32d45c92df95ac44c97b5088f6b8c705ad1ceae151951378f0729e8ab1b9b036c54a6fb6322d351fb59556aef4dffb18c953d0c94665b7bc470b6ec248ef59c94fb982be6b1cf81d7b5e2f1a8b8bc2981a230dc01cfa9acb8cc565ca425c9b87005e2ec5f977994d3e9ad1767b4f357e593c4eb03fcfd3dd04da6bfcde2a42c0a3bfad33765b42b27febee9336c586a08cdbbb926596b63e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85534d024ad92041e51373e57402f5424490a996d54c7ea7f1f36e9c7984e18472ed879624d5db66d380cf0d84eb02a468f82dc0ddeca41f5ba00f59d3efe88009a26782ccac0fd086770aafb33fe126c1b85165161c4ba31d737e729c64df232d34cfd43fc251c8aec8d9a0891ae39466b1bcafbb257affb259947954da1d38187017d642cb30dc65b25faaded18e0c4bde3dac0b92074400f9f5d1f7eec49debb428e197337d720997f70c7bcdcb58538068a8fbb9fed3b7340ad69c87037163ae3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8557b950e49afa45a0b41555d0aab1ea0d1b1b97f6f10b55113216939577963be118a25b558a4009dac9c46144f1f2dca64fc24acd7a753a3b70a30f1d18bbc7f17d4fcdcc854c46f182832da11d9b2d7540c9d6c085879a8267ff41f9ad983fe3871909511332d6664a0000a1983e839b4511460c35e99ff50d7997ef2e0b7e7d5b73793cc68003cc4a866ec7222b1182e5024f27186bf26a3467436f167b27026d4acd57190004b837641fe5b0d249fb0757772befe86fad5fb39b5fa5f65ad677689433f4f9563b4b64609a091a6c6ba6238e9f8f0049e0e55ce5e2b57080fd309e2facf1c6c75e7a9d71baa0198c6f2d0d9015c8a3449a7e061fab24dc0a0fc2d2e4cbb3d29dcc2a8f6b9017e44ffaf2d7ad190993b4139bc6ffaa74daa3dc8556db9f66418e768480bc1476ac1a7d6a63265daf35e278a6ad4b69a10b53cca4432ea0503aed7737a6db6522ba68b6c4ba631400e052d51fdebad819865f23084368405dd8afbcaf22aeab1b1db04937c848feef7e77a81f08d2ef8ca5c43806cd76e03f683ba3a396ce15549896c78ec3296313fa2dadcecdc44fe2de42202f62263ca60b3de7effc06868b36902e5b6a5c17bb1e7b2bb925205c06aa99b2ef56af4cec2a81948f0ee42b6e7371fe8a4950f4d7ca45b89bc8c73ba1e1fbfb6a4a675828be77b105aaaaf48b475072971f78ffbe55b46e44e720635d2507eb44c3a62980719b7202bff94a826d8b07106fb2a4ad1098c6a4c8488cd32fa95a10d307cfc9fe5b9e37b59ed1fc9b69040516d3cad50f4e713acee38c791abca42a3dbcf729175c9447917963b08f7f30a14096818b0b84b5c2e87175591196860d51aeaa0b6c13293e4515b4558579380bcdc40d4aabd9aab6cc5fbdd80f97269c22dba7be1d75b43ca9c8b8372204fd66baeb99853fc7ac07efa946160ebcee03edbe5840dcd0265892d9a4a3d496ae88b06522ce93d21eaef0c7ea5d323b3ccfc1c965908ea090d91ab13dd45cb63140662c1e98f9dc0f7487efeb950f33c409c77d53cf1dd4669e821b650c0879d1322057816b6e18bd11e1238ffd602dca3fe59939304bad21710ba5c4125171cf8f33d564ede8ccbac2e553ea9074faca6b4bb2010c0ac8c0adf576b955f6efbc7e54c0ab2e081fea68a9b9616c90ade7aab4ca6d051df40fd9c05b8ba2e5156f3902d5d588bd1791b30e2d77aa4da57d41ea31266d86ddf60de7cf8a456d1fe399327e381fe31ed7c118dce5d70c670075ba0c83372082184e316ab9a8a2ffe3a4b01ed9c50cb71e7d3c28a0f4974a05be3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8557d97a52993fec7ad6c60446a8eecbe73d6566b08b7e14d393d76a5849512fdcd12c1247edf74ca4aca15f107bffe80b9af4bf948b86bc65818058d7370cce8419c1cf55ba08660f4d08fbe0c3561f4f597f3e7e454aa8fe5a457d6fa3c9ae1e170b0257c53a39ebdf8c05e436d0e8e79987200a60924a2e5b93a272fcce03653950583b89b15c2cc67cc436735a6b27efff756a1d449d8137e068c781a7d722ba7161c6dcc395248963985388dea809665481c99416b426e2c6cee6e925317df7de7f538558a9e99b3a2f5fced58fbf1bb3ecbe6097d8801b1a1d15af8688cb6ee7eea0961e30e17e89905c1e5f98623230eb8660120ad85c9bf8685566459c4e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85563f3368073f90e140c901e5273367abf80bc34e0f8b08a22f4fbeba88207e6484cfcbd7ec696e28e9bb2c549bd97699d1aa11291e6360544a98b056bb403fedfb7b25d64f208a2c8e7670439e62a1c147d5ff3467e41104c3e59722fe10ec739b8d2ebc0a69c4dc772b9efcf12c0ce61ebccf4a1f73ed340e780eb019009be274975847891634cc452a3088decbcb10ed9cdd0cda0d94d84abf0b7da172a7e35c44d483f1d8497065deae070fc7fcd4ec62645b5c1c7c8a940bbc3bc56cbc63aa42d98c1bc0d753b220f6a0e64c9cb436919982a06a6460b5c6e1e468a3cce307957d97d3b7e9e91d4dad9a50896b6b51ef9f4ba26ca645dba82df24ad6c5ae62c5c8a2e1f13503436023c9f54005bbdb7f532cd116405e8329f5eda2cc20979ce1837aff22d5c1e6b06b59f4034ca4cc0ea5c5859e64b4c18c488db2ac6e81db4664258a3fc0d6d17ffb96b822cb6a5d7333a5ca7ed46d1658143b32672e31e26f4d578829202c7f9b409060e0a801655e87cb0de19a0a34bfbe625cab273b0be291c2ebd62a916e651e35e3106721bfb37617448f259c858ec5c6c03956093e6beea06ed549b810e85225d3e8cc852605f5451f4159caf12a63909aeb3b7343cd6e91d06e6fcdf2f55bfec8633f62705f4c4da088474b2f8fb84001f9770ba2712c9bfa98cdb016eb830e8cb89f51dc13cbece79d9b04acef886657c74dab061a893f53e857c9c02a1e1a2160b124a1257945abdc76768a1ef4f492b06f2ecd043d1fd18e767f17e01f1f17db050cf5943bde98bb3f820c69c43b1ce4acdebed01ab09a2153b19825d13c8721cfd94fd2211dbfba0dff05c2fc0955ea320cd702298463a85ada47a9b21c534a1215062a6fdb80a163f389b773c36943b72d561aee4b00da721adc1bfa12e8dc222ee1047d70311a6c2cd9ce9054d0b212be5c463797c21bd8ecfa896b5e7c226de78dfac9eee947c166ef6991fc68e2648cce3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855f5e7a8ac4c2e3398f3b91d1f770d63772ade2d9f8ff1ab9ed03161e2dfe8eef6eefaa41f14e174ba879299adc888453bbedf424e6697f16cb3ed89fd29189fb1461d1ec227c1568c5932f58b4aba9f86c50d3de581b1a1cc7dcf8d262960ffe865976e4a4be9a2057776a1983b62e32d970c22003aaae47d49715637b241201d30e8979082b87003c53d7b73a1a50eaeeb65de4cd87624d5e1c14760de132b1e872958b7338dd5c642d60104e2a01bba5e6e4962ecb4d2de2f1f7c5edc39527d5d60dd8bed18ef5ae4a6f933c02cf60260cd9bcf5d7e7b6e0cbc24b443502b060c5128de47dcb2ef0c1d34edf5e8357498bc22ca7192026b97d9cb8ce44839897910033d2ded67cb4676c44f0d591d63b7a312d4dd871d7838539ea28b8f0f8fe73e998d2c05829ed9d63a144353d8da68c43668bccc263ef9041609b36cb909b2cb4daa6fe88945bb2def49fb5715ea7d3897449cb069adfec7f608c4319729fc64a444f4f1446ef02ef5a9d4484065b9b9883428b863f8e2d66c5864e9b9716232c743883bd15f8da31218d3ef2c777fbed2aac89009413d10754f350a2989be3170d625c75c5e1d9afbe02842989833ac158684a12a3594fd4d4bf31d4b478c77e165199f5a08db7cd679737227da3793684a52a52f268961dc147a1cf33977c08a13ff5534aa6fd617c6fd82e0d7d8941047eca3f74252fb78e7fa3d83370613833c035cc28877af5967afe14acff01d0135c11589dedc639ef91baadbe04fe595e667c96cb6efac57703d5e581eb255cb3e6f74dbdbcceb3c5863ba852b994f8abfa9366361d0e5cceb2e256d8351c411d81b188caa9b927fbf42211f1961f5d8164ebeaedaf78e1a9a8992ff43a51f64b68f9984a7e4bfd94cd7624779e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8555ada79a5fa04ad4c2b315b30154aee2d8549a8934cb898512fe15ccb0e0f73803c24014bd3fee3b72cfb03922f23ba808c9cfbf26e46e5356a8e7aca37ecc9f7a4daeed6154c0617597108665f9d2875d9ec14021e8a97bd3c2c8801441ce169daa16912bf1af9b5c7f0f24019308b84be54afaedfd3a360f0e1ef70bb9b670a2d43af6f311bc0eb7553781d97381ba4d925eaab11160f27d0772c2fe4a43796efc199145d13e70585cefcdd1a2e282a2121d9327b6b8b744d5c7bb658713ce721ddc5e7b414d29e15a2f0f538d4e768591f4b4fdffd689168edf9204a2efdd39d3106539c638655cdf2c47aa73435eefafe82603c5e11113c2b2bccb1d927a81f904135fdd0870b22161358ec4060c4ce642d6b704d663f2e5ee9ce514fb23364729c7a2b0282128055dcb4e92765c6ef01978fa3d53a3c8612731d385795355ebfed350ce4298a9f82f8f9be84b2f4bc2bdbf435a86208811a502597fa33756169d559e6c479c9f9176853d15bdbefc3af8f50185220791aaf00f6e4b0fa24c1c24c4dd10fe3f30c0ea139d549acb09cef8cf7fbe7eb4f04bdf98511b177ea475cbdad12fd1ce9543168e274ba54914c4519782a1796a3099eb21a538aa673c7d479bffdd54b8a161ca177a5e7559f6c7850381242511d6cc17d0e1dd7197dac2037a74d5c842179f58efd006f3b32354d2dd0c460dcf93c961432cd820bb0ff414a4b5ffd2fa3b1bc33f969d892e1647b7caf1304a0170a2ce16db92f0115559c19617b95821910276a605887a0b3b5ba7fdb43035ee71ea8dcf93de99bb1caaddb724a23835771d2cf5f6e5fa24a9eb111e079335d0637d3c7933bbc14f78a16aa99aa2222f8de2a630aec57e503dd817ffe2888d75e180b288979d89770fc381643b9a9b4b7db304d4a44cde66403b879b07aa86d88cef96209e149feb16ea1a566b9e6fa37a99797ba910ac8cff59b98a24d8cf1d2a850e356b25917b532e3e2b4850888511aa2f828305b42a3be49537ea3b052862a5e749031221a7580381347f88819d669bfe27ad3c3666cd538011a1b2f0e2c3333d4cf97c55b28464bfbb7d555b8346af981488a8b9966247e996aeabc015e176eee8d9e4fc903bd54e056199a208a58f0b62e2a88e1dcc3c71fdcd3de9369bf6a9250e3222f64a9e91e50747a0875fd5fae781269d40648d511c59a34ccf111eeec59ca4cc2463d4af2b8fa62fc614047029ef5275d9744dcc6c8f748cc77909518512dfb417620f893bd00469d1dd0e7cbe6e9bff89efecd57c7c80241140c5388c01e259b56be0781846656c5e818c197d92944f037763dbcf36a607d8d57d5e1014d6585af33087dbeefb310cf3df3a5efe9d053328afa6521a0fd00c6eb99a0bf624d0cf10b14e5fd6a7cd09e2b6f55ea0b9dd7da5784766215c874b19810b1ce9dc94387cc3153b4791d8def0a082ff32170654c0f5911d3a760ec8f9d916117687ea89af9ae447c85a14487983c3750605d82e28bf2e6ff95c9936c01938ab041fb5e555a4ba44e5a0f5b577f72d68d93d7d82f431c8af906d9cbbf84000dc0c149929d7e5b5adba8dec46246c3cd4513b272e18d818f6600320f660f91fbaf3b8c8755e6801dffe98b30c1e7e4b28edc466b6a1642017772cfe3687bbc0876ec2a51dfc2a2e4fd22ae296d77391081c0ac8e7b7f03d01a74b49c6e5198783813b7aaab97b2812a9798fea13f6d83453019c2c384a81cd8c736f2ae972248cabf20d606dece79b7de197d8a295af30327d7e1936b0719c633bb691bdc3f14f7b73e35b2881332a2615ee9761e42a53f1a8ffe7451f2cf190aa275efcd2e8aac48b77eb9daa184052dc670cab92f295775eaa0b49a40064ba7cd799f2fe4451560292b99db13e8637d725c4b9fe6484c4fe22955d319fb18ed0c477ee3296147133d5cb42eb5ed4ef9de394d1d3d365d7b360f869f5d31e7e2fc7b0bf8c2c21282a885dfbbee387c76e185f82b64e41d50717950b50fa2c3102442b50b77146e2127f29e041023cfc8d92a371c43362b53479cb4d8eb09a562269ff8df60ea1a358ac3c49b68c4eceeadaffc623ecc045f1f76121d76e548ce8f45a53f39e7bf615c651155fa0a1595ca80db320b155172a20d8bd9d10e08c2fad512d1476e2cc17e0c76fc8aa0f9f36093a21f033ab321e49abbbefb05e5662d50f36cdb08d0b44f067a715e515ea190b3aaf20fe1e820a290344046bcb03883632c881d69eb02a1102ee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8558edacc78f15854d70164d5f35c8e0caaa5dcee74d3597e97dfd08fc22c56b5aa6d2ca1e7ba2e9fdf3be1e0d27e2bda5772f7a9f200d2a6cfc6238e139d941f5cc6e11461ed0ff28bb2beaf2f307a01abeb16fd236cb60782f3085d1314a6f069e4544785df74ea7609ea4ef75ab44c62cd769ea94108857940a002e2905b0076132b3e1443af053e94c2a5c24c53109d09c37e842155149bef2140f77c2e64ca6bba5dc76f913989895b0f94ceb568ae933e47f96d27b2c2e5054497be67b2668c0617dee7ef65c24272f4f22ba971eec03d068a7354dc3a8b97922ad2f455c41127f4479e1ce7a14e72f45fbdd259346614db9835a8cdae2fcc5f367487942c24d89b8c351f72a670f7636c0526e9a086d43603fccd45d54d203240a10f66e7fb13adcc084981b213def5c3ebf05d8015fa9667f58585d0c9e3c18b795a694041d626c39d272ff0e9265966754eff41f9076f156cfa97597b1bf1a224fc0b8ebb7198ef9e04d72299eecde27a1842175304b2047f0c4d93fc6cb4121ce32342731def5333d246198ff5e0f8b563e7f1aebe396dd9bccbf8ee6bdabccb0ab99fe57c4ae3b968f802370aa73e8daeaefb676b54f9ce68d5134f52491869162bfded3e6f5eb6d0bfc2aa5d038b778a6f5f9df3b9681df6030ec5829c48e5b1e0c2f0598676d1cca4c4f0a5fa4d6e4efde34d7f63287f6abbcc4485b06b0703bbfa739555faf2f8dda8e22251e91a0adeff6e79d9171ba0b19d68336754ca59c84c719788a11df649e611a13e798976099b191647126872457dc07b986ebcc053e1e71d1ed0739d829c56dc656e54981b7a12a601fdd423e8d44280200ba3d2413a78de1bea7d4b41befd71a67f1e30b2e5ebe0e63b97f9a373df7cec2b90e64695c47ea9fa18471a527c045b551c799b7bffd699f7bd578340d9bd826ad0558b63eeb3465103226507ce49fc43bb2c89d589fbeaebc265da42ffd26f0c050b5e974ffc32f0a36c8c34274616050c3beae1a13d2a571e239592ba46b9c2984a2a71270e4b72255978a52ec2ec0397971d1dbf1ed0705685ba7ad1cb0f68aa0a8a751bf1aa449172a5200731054a535ec230cd478950f2df1b58b338d12ae39c2e1a842b7b2ea512223a5b8e8063815867815a157165154510f94b1c73fc23a327df7fbf5661185136d292365c8a6b592eb8352a9d3ef6b0e8ff1a6eace3fee944962e37fb90cba3a7790b7d7cfc42495723ec3bb84cebe5f0c1600d444ee690e837755bb0b63c383a3152d753fe8494101f0d45a942c71e2fed44dc183d13ff2c20db78ac04e7d118f8ee062258d76794324252ff90dc0931f06d6b2b812dfa98bdb287f9bc744de730f5523d9dad8ab1707147e030193131348e70113b8629769cb058b69fafc72dc74619c591cd57edeb84e09e0de12f7a832c345ebda6854756247d5e3bbc423abbba087bfdaa3faf0327cd760774976bd446d572b1a68f26df16e4a0608a85273f37d257d2817e83ad88f5e7001d90fa956264ad8a434a9dc9b16d9712065846f1a6ae02b97e2889056f0db09d22297d2bc435a9fa90e37020a905d3e35830e2690aee94f8cb53103183a3f48dbf90ad35cb376326be0f7f4c67aaeddf372b48cfa45488aca0d1e0388b572e870b149cf6fe17ccedbcc35f7771049e98c99c3a1ec59fcf382519787afeee0f1c7ed394a14133eb362de20378b34053b1fe3878f3039698ac0abae171e65771ac4cc8e261392ca7867bd4a5c2e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855cf2bf4bdf793d027e9efddce7d11826e42755bc35611ac79ac363210567f193849e5cdbdea5aab684dacafe82c644ac349656f02cdbba861e81e79e0c271489c13272adc9a89c667e2ce3898be5b0573f8f0c4e2dd5113fe3fe3f90786b9f692f904285903840414e8986628c5b6d327c4210dbfc4e7219c83a5ccd899475c8c9c03e85d045c0dca1ce9492a870c5a3eebfd29cc71f0488edf6e4d8f928d3c1561a93d529cf74a0f4e3467b0175aa9df9058c748ca4628f5c98cb63a35688f41665a599598ddc6d9fec26d3f3a2137d927bdff2a3dd2ee5fb8200b2facd361ff34b241716d8ede1cd568664092b6079d8693862b5dc0d90cc701522dbf1f1f949ccd21ce8c53fbcfbbe65e5288115cd0293d7c1dc799e24a5143d6dcf82db67f52676df173b3662412db459dd2954354b08a515120b86c1890d8fe61d1a479f32769c4661b007647e14b18d247296c31a97a7f840c15994caa66c35dfc6da4f532f46b351e375c4d7ce70679ad7117eaed0ebae6ae1d0338f318d04a3dece3c7697a4e562611f39badf0f58e63b8314978300c913b928fe200ad7d50a0664978ea8578754ca0f58b8badb02474a3df1cbd0368fade725dac0f3ac9952dccd519aaea1233a4eff3af3843cc2bba32bd48c598ce96869bcfd6ebb4803b4d7acb006fdcaa437d61acb975531404d9fed48fc19113612b843138d1c3de93743a4ca6470a5978c403d5d2b757f5767f23541ecb8d7abcc2b3b8cf5fe5857b729074b89ddac9b65d19a15e6f5cd1d33f3fa5a544f8eb5e19636304a45d3d87a0d4e6f5968ca93ba2bb0138b616f4db05bc7f5149ae4173694df9fd0680b73f68ea2440d350663075228e78d3b4617840d0f79b7868581583d54c4f7940ecc6f9b11f97bbce4622b6517744cb6647a1c9569cc8f117b9349c12171fa1b423fc7ff5fc6c0756593d27054a05f38e7371443257855a24794f8becda8d7c57c83c304968c85fdf1086c63351a03952e5b78b9d91f5b4e73ba9a493b8c3833640d994d2e72bc94bb585e4b675a2f7ca51ca962803e13bf0770600e7c945a233ea4ebd9a114b9e6b0677c356e6aaff042858dfb0bcede3a0e9196ec076544b54b8c20c0ca502f894b8bdd91d3da0cbabb4c20303fbe74c167759677ee69bf103b30a61b50353b742bcc65ea86b9810ea78f3acf68cd4a10c36e6c7fe3b2ec5db917ab0beea52a9244d86ee6341c813d659ac9a1c05b1c4052deb800bed2abd9780695f17cc03994e83276c0e858a695dcc079f6e8aacefbb7df309f3ef95c3ed0689a88213acb3f174c91984cb9bf89f75d5531af52f2f0746698f43ffd9ef26b81c57065e499e837cb4d8580c283c1f0b00e2793a85b47882ca92ed6feb24775011f69f809d89771fe2695693b84405202e5a06c91892d77898afd99c46f494b545cf358beb44489b60825287de72779a5b771304d19bda4a904435bddf8445febdd29260acce3070a3e133cce71069e7a76ac9b32c1cc273d1d0d5f5d169f3c0d0b6549f5fa9a67ae59b3bfcecf3c8c7be4820a33c57acab42250bed53aedbad7216cce2749428a008ace0999293cc6557a7b503c923441ee82f2e4878d4b0f46ea8d403df40c48b0a6794068bb8a7f939027a655cc49f7118afbe19e8baa2a24536cb0630e087d641ab3893aef84105f3184e09c96cb336ff762c8f3352a1e98c651a21f7f9d66115616817f44d7a6b336d5f3861aca7ffbcc0daf8efefa9d98731aafda5ae4c9083213df03f45edd6feb6e7b0c0aac0fb5d099e11fafd34ca01f312c6b30003bfffcce20a54ec14b297616df118f4792f94bfc32b0e632ff24ad9afe2be4d15998b95d99ced3f472d4157a7906419d034e9fb995a278a66826aaba899959390ad58fddf25e29dc212b1e7a7e17b54f733aa8904d02a478ef9dff7a6fd8471e5e466cfce3a844ef7f8981fe01952d03f6677ab94faf214e2124f531bfbccf21dfd1f9d2fb0ab9bfd985d8392e5c75b653fca7e657862711adc16230b248e26fb067ea17562f7c9b8efb997d49eea370b06552f684b046d53322940140ec69f752cc54791b832dd4ed08bd1d91ce25e38d021d65620c95cdc2bb9d7ea105ce3c3dc0ce1435d9cea212401211a0bf6c72f6f29d4e5495dc77e85892f3488f6dabf0e8b8495d60c365246a8fb56db7099a11daa2bef08299c44e680e2b988f7ce301034f171f2e52c3f86a9e1dca98786e5c699e9df1b1798bd4c250c67f6e18fc449c5a91648b459a6a3e435a5d948cca7214ea4dc76e1128f1958fbfc3e82701decb7aa44503d19e052a2e0321047d415009cc6743567e2d3e7d616060008066035ee73978fde2e39b43936eba652f34a5278f990064392ad7525936c4c403d9fdb76cc6e86190804b29e756fdfe96cbcab527dea627c9d301a2191e6aa75dba454d0a832fd09b242d8ccf5ddef543becbbc6a88f2b8d1ae8551c8fe32148eb17e17024e5f22a1fa4a09e68f6c315b0614fe3f0d9b85d77bae439885d861e2ccb01d83274b3170321630d9746d7b088b35f6f0923a551ce3f6c9788b7608a58cd14017cde93f0c51d680b9fce6dbe180c1c32af49bcff032ea7f554085e2079dfabcb56d8a724d02afdcf09b6a5d716d572bf5f2d1f6a3b597d3fcf12337e802958ba457d5d0c9434521dad13899a6da763529ccdbb22e5dd5067915ca7e7d8c7587cfa00a9143a827a662ca1e1d50335b97026ac7e30e603eb77f2640481acdb17f15b82461651f3442c37ba5ce2aa8ce373360c19877d95c212af2f7a460ead65af2e559e1de51e676cab62ee4da660b2f614b84acd9745e1d035d12d725832e8d8cd6b76e2900a2bc0b4434ca026b84b34076cfc4c380d20d352d6622f386bbdb6a451c265d4d437ee7f5161206c90c194e176d33039c5bfcb9cfeadeb98112cbe0c8dfa3d7fe25e680344bcd7e9858d5eacff46c7a7ac6416de70d00cb23515e0c7a5bbcecdd3ca54ef88b2389d0abb92eb94fd2f902190aa78ff2998294e62cf73e5692682d31faaba74405b9afaf373e9f14474ef4fdecdc6a40cf0da56608954c77fd85027069ebce73b525152e2540d07748689ec85bce2a9d1f57feb261924ac5070e647f8dc4fbd9cb304fc266f081a59c0b12c1f244ba3ad858d66bd81ec600c30b417bf0c46bee265ebd1a8016b274b559b97161fcc189a68ef6b290ff7a36c6e0e66ebce677464e79955587c609b498d6947ff7ded8b085a58a0f9b49a3f58f1f9705dac32c9ccaac456c2f5d1053e5de2d8beec4e32086e4237ef0a1c90618109d61a853a4dcf0fbf9542ac7882d1b794d723167947f5538d2ed552492699f272a69176c34552f4142e324424279454a457d2436e59198de3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855a4b62c56a49559de7174f815290fda320c2d5282f518912b9fc4c699eebcbf2ce3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855ca73a890c13094019f435a7d05b72b6774ee29b31bbf98f9988eb52a62c2599ecf3ee017bc46798d37ef5ca3de8937708280c67fc94f50d8b584c27bd4f9072ebd88b873069976b59f419d3723bc41064cdfc46390a7bb50deebc9d57e1d1f3e4a34ac31732f861df28970890f39245bb2f87b38c03aca13b2f759c8c5228730061c33e9ac5cb615d18b702871c76ddf300d7013c477cdeca9451bfbda7cd036d42639737190ec1700869535ca1cbf5520f216ff853e5b4e6e08eaa1a736c21ecabaf3a6b49f038e6c5ad27df91b6cf65847a374a03206d7e637932a65900529b3072aa589a97c8e67c1a1c54fb12bfbb004757a250c94a9bf1ba5d62179a5ab5216f2e8c1543aec84484996f43407127ae46c6728b2fd45e4d85bd47bbfdf529e46ae00fb45bc613479ba8263930a1656008805d90e723a1f82b3a0c2a5d82726fa18100827f67ffe37098a0d9d564baccf9cc22da346100800ce8ec8625382abbf6c0b0489f0fd1215a0ad85af1dc1f5786fdb6caf85692ca44a3c08c7da4818ac716cf6f41829cb03c5766faac9bdd9f9dd1a5b3d7eb59181ce3561d1915fe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855f7e3a91a0df87ea6ae20113d5dbb0620e8e8a109ccbf076311ccf0b1aac0497f100004d1744dda9115f02ee2099a0eb99a38acf561d9c476495bfdd3b19e4e049e2e57a54e10deb85278e454e59fc170ff3c36d9656a998528972dcfc0785b5ce3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8559a93ecc7953c9b0c2b359519e8ef058e41ba303bba82aa17fad9f9b120f6721fbfca1ea6c09325fe4792819d57119a9d9a345bbf276c30c70ad600886e3068e031af697ac389260b30ca48e1139f0e0f92d6bd3a0e47e784f44710407e50fdc935aebde70723a2f4367282672ced55033eb1ff24b852a2fb8c2bdbfe7fd22a11da1e94ec5ac5fec2f9ad55954d39a27d59d52ab5a25758a2ea2e9e6747b2b225cb27dab1557c8393b7201db82ef22d6bc1bd6b3e04ec8133dcb5c80f80afea878943c7c9d613fe942ae87eadf49e67805b48bd3ebd1c8414bdd6c159da2d43b1ee76a0e8167ef9e1e7d0dce29a52f9ee8926862aaae5d55e58e86763b30e36d52134cc174a496ee257e69f8f20876491a3145d3cc5d98167a8dcbd69ab8d4bee72cffdaf86a4fd23b0fa3d04bb12082dbfc906e2be1b001239b850b5804bd5ebfc5df62ffc958717f0315f2e01fc60366f1eba5f22bb9d9f4c1d5196c5a324a674211ec834fd4f33e02086c55c7f9825fe09ea6be54ee2ff13d38a48bb39746a24537717dce3e00c40148d988bd5d58110ff4e47fd5d53658a079dd4b94f138141aeab675ee50bd03d8b8c125d110754da809e628b1af9a080342df5e647bb0129e9cf68e1d3512f22cf93e5298ce00933ef6bc24d9329758a1959f328515ffd340ca9120b8c3a65bcab41433bdb4f8f3aa4993ddc8c548d546f39b9db0969baa36e24fb371cf28b18fda19ab7ee9350365a56093c9d556a5b852f81c2fa7f4c59fe7f5e995dbcd071ff232fdff08a4d6d1591245839aa97c05c4b6168c2629f272e33da0c1faa64cf37ab7b02509f8608291fa71a5251a59af86d274849fb8d77598280a7e1bba480782878990c20d111fefb8a2ea0f833686ad4b408252312e0536b263ad57a350899e6b2ba121fb9c7f102b3b9e41229a8db400437715d3a5151e4b80a8e38047398664e33afdedc82b1233fdbc5acf15438f2c06d9a0af1e8ca406572d745cf2225da65861400db1fe00d19ca3f3278491f0a1d8f096c71d28377695e8a67fa3efbd48b4c68a0afe232dbc262b7b7becc21d92530fea95fb40a4fabfced9bd72207a6f0e2adf8e89eba0d6f4e5552af3c052af036793eb269f89877d48edb8c720881c4f334c993db8b72ea4d132f30654e11e40be76913e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85549f42500add25356306c093d64ab972f53dbdb86bef7d635f9b3169750de79733c7891f6523aa19d90d844802105d29b105a492f7601df05f8eb32a0e1c6ff7dde2ccee82a8a3f406071c656417019b5eacc20d7d790e1a8c6a7148d839c16e7abc2a971b90c89f5af81a1ab6f4c1db6710c4f69bbc96b2f308aa0f6328560471cd4b9304d48290f9e944e40892d61eb2242eb06fe866d49218982009ecb1d7ab7f3ebe641f8f3922307584ecb27f737d8f6efac2b10880051ca780c5f8f083249f3b07bbdf9b4a19f6a76e4954983eae69a1fc091f82da88b9e7cb42fc97f783d0e82c212c2f71a81dfafee1d41e4dc349c7574c96d481a6ef87d771b76a81adc2ed149b4e8cfa649811037d8466b81edb7bab70e742ece63ebd214974670492ecd4061fc8dbaa5d6bc1b1f45211ac2ae3144a99dda842c648fcd4a8e0cfc3bf91f94c866a58e0a8662948e186c8b0d24d803042a0893eb6b7b5b4a1be50c64d94e0580803b2206e3a333e2251d5bb110a26231c3471a54961dc50e480de3dee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8554827a18c4f9022590f560c3579d6cf3cc46466a683784fe3127df9493cf217fb9870b8c4196caa435ab4a13d2b712e37d59df351a96153a8bef43a2e539bf7a06ef4ca09c3a2afcbdaaf3407351cb64b2fbbf159a2c894c7f61017f729a44c2afc144d4c2f1bb5e83f1a3ddfb109a691eb9e6705f29377948fefbf0c2b9d88d221adbb89c820ffe4484efb40d3f999d3bc395866729184bf4d381921fbc63cc60f7a866001355dd03d6feaef94dc13919dccf812797634db28906a5b499cebce8dd806113ec8a68e37d0f34894c8fda3da0981234767aee8c568da61bcd9e631c2a4e6db58633acc410cdfa2b73b313275b9f7b7b4557d9f7b559a50c8032b7840cd6a392c698f758c7fc2a2766fa839947301215a94218dab899b34ea3c4aa32cfac440bff76d881d7e9c93a46f62c4e61c7d7638a73d97fd09cc7b3050ab37676f3e323841c63d1e62f4f5c94660a4aa20251ee630beab3d07eb6be2ee32f5560e233dabb277b5442c6b163d0cc19ef4df51b71b778009ec29c7fec9efea3fac3edadf31f3a07a1a7aafcb38374707bc7366e868267374a96130d96bcf82dd35398b5f46c18f2aec25a8366f24bccc947ebf53be1afcf86bd31c0401efa473a8cf34c41b81bdc6314850ecf43991a17fb1ff9de3c17d1436916c83a89317a2ed6418038a792a71763afa9c4aa9d688eba658967decdba3771b2db5cee9674462a3031048ae738ffb1333ce1cb98920439e8a1f128c48e63e8a68c6b85893759817a6f501685cb3dce337e7838bdfe213bd884765993cd0d9b2d2161f12523c483bbb32f5048d3eb2e1453bf9191a0e740680ee642df99adf345442e3ad6857413b787084bec41b8058bf2bf33d5f927ec51850a70c10a2ea55f841eb4e18a99802b530c426f1ab15c88b65fffe2c5e5f9e4510d94685fe424c886dc8c14d2879e2583de6dd315392c99a0f7c76d2c15da51a33f91ff9d7d3162551358131ca227fae63af57d661396fd96e8677450790906a3b5f182add8c73b9efeb444f5161c7256ce119b4e8250a6d64736bbd13a3de5729e4516bdb3332b78e928da55b9f21a181deeea6e619065257b3dabc18a7bad6c9f02919b1c019b24df43e63816875d760359fdfd8b7e7f93b557b4f1e59a7e994dece14e19167be467a1b3291e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8558adab51cc049edcc064e93c62145b1679c26341dcf5cc96d7a0b998ef4575d65b9daca3b96887fd8a86f6f92da10132f37b8cb86492b93499b9e292dfa3f4f48835c997fa87a2404ee4d69eefe7d67697790839cc9e9c57e4474ebbe98f543ce02fb13b918b79dc5856c37ba61e3ac45c3f2745031ed0e1b70b494a55abf280053b548ad75f6f79297e4c32efeb1e6a76d337262ecff8dc21b1556176e9c289b144cf7d39b23a85a32f1800b9a7e9876e64f56f743cb2900006fa9dd3137ae405baeec62c1851ce0fe5aa5c74df07e72d28b0ea72ad39da99ba5ac46c564f192e8562816e9944a0c771f35882290da2db81ad890493cf291fefcd5729cea30a681374f5856c89d0e4fe33de90bfb4f998b3a9eb1689f0bf717a76b41bcaff459d64f372e3622169c4b2e04d996de6990e0d486a4956ad38fab291370b013fb8c69ca76746abede77bb679c9ee449c3ac6cdf4596bafb0feb711d3053c4145fd65231b194b42780d548754910f358dc66700a6af7d2adbec1e22446cb0fb2ae95a3eb0e16a14ab79b40268ed1e13a3e8d5f8b5b03b34a7c65c2e11cfbd3d07c7c419a4eeebd24f074aa75208a6ca90462fd964878175c80b52d5ad9a5235ffcab0001b8c01e11138e1d936d641849f153c009b81eea6131d6ea05c00207b6c099a3f1e7d45b11189a093eef3d9da73832e8db09058710f51c99b71014d2d524eb68fc03dfbe4205de0279da956895bdad3347fc0864a97fc9ba65acc33fb6cbd09fcbab4f7e75a661828900e867c5474cfd00bb1ae82921a55b2730423126095fd28c24f5700a28273cdaf2df8cda638070c7881ee5721fafeccb2ad16837ae22e09185a7293805945a4478dc7cebbfc0e4cba0fb911332abacaf274926d5a2d49bf8438eb41535ce91011ac7f0ea2a800a3f005d2c6c4a1da19ee02188a83507ca90269ffc3bd51e47598b255a839e71b48bf5425c0f01bac7bfc0f94fc6abc75bb436038dd7c27d8caa50a8938f3890dec2601e1519e37e1b7a1ad07d60097a827b320043ae8b38a81ec9703e11f62d525fa6d495672a38ae83cab4fd419bf1d23d5b84f40255a1cdc4898d1247d7fa3dcbb746e9be0ac77eab834d42e99f7e3b9343e2b08a2f405b7da09a4f46973896f5579b28c20119573c2e4124c0edeae3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85587ac73059d385fb186b76a8d8f65898385823ce22e53dbc6e3ea435f062be6127c40639bb817eb8850925f2fae01c642855bc19f2f23363aa8c7e127526643a48d6e77ed0ad8a7944c38d82ff5d14225c7c2dbb709e4ed7ae6b8e2c25572bb30a56c1131af9d4825c4aa75d6a78bd50aa98d6ea89d1f8469f5716333b95e3e8153d4c9dc89d0dd4aae1e50ee6a7a69e60613865d6870d8c0974f2e3d603ca3fe20eb379684030f1cf239a01bffd8e064b9529141d5828cd1423195f7ed7c6f11551efce4b15a2c0e122422f7d685c5f61a89605186105348288438e24dbf749f560b48b127d4ed08b6ff620bdaa9fc72101527e5a84295126cdd56db302c76b606146e2f50aedee9760a602940f4373f4ac59be090f066382d48d3ad82b5169f1cfea86b4f941540a240778498efc4734d303985a8d6193e7332b9857e09d0699719f6e79caaf3b7a0a736cd0b217f279ccf52f5878046dee0e1a454d4dfe210790401ef751dcb2db55cbea7df9b610a5aa7682b9ac8e7e320201fcdf153f1469876e5003fa8037a0ae26f85f9cb8a8f5edc75b3c06aae94193331b91687947e1804caa058270156cbf4be7e38320696ec62532b671bfafeccf8e1015b7c75e7480d67b90ac3f2e529db020bf4d953259690ecb04b925a0f486f481d7523e665e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855fa65533a25e17d69cc27b04ba8757d7ca56f048986db26cd174bacf5b881c154df2fc74195eae555daa463a3e9def2d760756d1b78db988934c7f924a78fa4359b84d7dcbc6c40eea0f6d91a9f30e3b036263a303ff2f953ebcfe366f0167c016606a52507829b30f88b0004d63ae701b4d2090661538f8d1ef54246287081eeda613fa74b0ff0c1deec4381195d440e46b90c9d87a5ea76a4670e8cc57e645429b3b563ec15ac66a125e381c33549085da0aa9923392db9fd9f88c675419a2ca40a39de29b8ceee81db31b632e533bfdbf73ceb334678d0a966197d6fe5925b8e15d914b5a920bf53d7e2af2fc5324ff5dcafe763697d83c59ac564b96e6b56babae40198f11bd7a2093fd236a2038713d728077fa38d5a95164f47f9309d049739f261bc23178268ef310859d02caccc6308e12d6226df6a3127f540cfdecc15b370af0f3a39cdc17fcbb36262f0fd32090bb6fd3143b50a7040f5b31cabe265ca90184b812cb709abf2d4355ba1c60359d5d748b2b4931c01824cd15a56b0b82a674fa3edb433812caff2fcc45b7ce85975387ce8b794662fd94dc5b94903b89f5f1382aca55b1578e150198197795ebe81b505b73c397f97de372864d2c8e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8553022734a91fcbcbd1e05032c312711416c3c83cd4d0039c8ebe95f9c8ca316e66cc2b3214cae83c39969a7473ee390a275e21da871f7bdb435d4bccd9bb77dfe29d5376263e883eaf37f5855b4a2daa0f2107b338d754de4471a5ddaa7d6f90885125a484ca3a905408026f56d0a9b4473c11cc1655c59a5b466b537dbd3738e8beaf83413674990b65613e58f737a0d406b32a3bc75e19b5980b9c40a96efd6ce3f14078b8986e89468bfa3c37f852d59e33af807986f68c46366920452313c8fd020f9d7954575ea12194ebe1aeeb17175283a373f61e779a5a71767321617db7debeebfea3055716f682703dea6364b0ccc3d67193b565b36f35f390885cac3b992f7b9527aa90fc64380dbfba33b210bdb8ea664b86f06366101a37e3dae5eb76d14abae85486cd0718bfdc7924358fc8cb621ac324e37f3ef41cbf033c9e480b5e3de3a963980a7afb0ea075d6a8769cf453ce142d80969ebe9270a019e9db4dfec32f16045a4fd9f25f3988fbb43bb02da9440859ee4744c9902554cde2d4226fb28a4530eb7d59de24f1b49cc0db17296867daf65e91fbffa65ee25f33b3f98ac3ea778581056e693e8562fb49b378649ab60c3da4d5ef6b9e6bd8cb063a4a63f0bffd99988b2115ab003a74f4726d09116b5c4159cf995fddbb0a4c218e65d3da23b96d11ad5f0bf776d6fc47896dc93b5c06b65630b8c61df36c49b3b1a2a0f540e14b4c6cf8b5262529d279d5b55c35ac950cac0b5b2c69f5c88732a0f6d610683fccb39e35dabcee98dcca7e0d4c2e5148b2c23a89952355d57e09d205b6e5721c7e75dd392b67a0ba8fa1600b07b75b7e2af7bc8b261a8ae75bb4b2cbe46cab60401e7a7ca43fe0768ea26dacbd5c82c494744959ac88c8bef8d5d1ad27fabb4f5c1ff363e144c951a4368333d3b424f1c6b3f9896e81aac7e6d109abf073886def3ca3617d064748fc22e70a8ebdb756e3bc693fe611a34eac3e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855f8094fba3279c14aa8df5acb69c2762e2963a2c3bfb44c154020a15dc55b41f7a7159353cddacec52ccee0b1c692a30463d1cbc7b2fc6f8717ef45e4e0f54ce90b76ced4cdfb7a0cb6c32353ec74a843cf200e39a48eef8a68810258a7c1c4b0c0357cfad8bb02506dce3ad4ffb8804b2e06ce2d0bc268e134e55787a70f1c1c8ee173565b2e771fecf3b471a79bdf072aaa1bd9dc27582cfda2b2a322beeba879c4ca91564d56d7dd887a3de62d44bfaa0cc763a6448b71cb321b4387e60712910cb9c8f45db08e15b59344c0ae10cad53921c0927906ee7977c26807f906d07f62cbe5e9da10018de3dd918a2e11e1139936f87b4fe98179f6135189b1ae987a392cb54e3aa82133f0e4264617859ea693613a354a5b6cde9ed5db7fba6cc71aead785808157d7ac497e539c164631f3556245f26f0fb2efba1a42d969e956f175a21d99f41310c761a6d62e51751330ab82b6e3b387213859b0369f4d48872e11b3bb401a5e59d0820d80943f047906cdb59750079d2bdb6908c973f6028c43846ea517346ea75a58608c01defb9da2517b7d71be04d51e224f768fa07e8063be4d7727a2eb39f2de584dde6ccc03dc6cf5869bf3ee269ab579f62a8bd956dd23e3f0d21edd2159a08cd08d6dadc82966bec5c5aca16e411715c882542efbfc6a7191dd0cf1dd6b90ecf7ffdf02f749ae4a67271bc82a5e42bf6ec2b8e0e79b2afa8518cc709cb1809c11ff0827e017f8a57412a5eeac5caee32e9a57190872376ebf16cf18b8fc9b2fbd913756a64dd0b55c51111752b200acf497e791065c11c3b03faff7730940c428d8c51e9e82a660d64a81177a89be66c311ed5ea3f160393118ee04e02dd96555cf3864891ebeac3052fa029e2db214790dcbf21b4b863a47114ebeaed3136583c553a11916b222f535635b2998dc604658467a5ae3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8550b1c4ca63641de70699bddd9f7affa68587ba7636496e62239fcbb3771b3b32d063aeeb5a8e91026e5d8913bf34a218fe5155dc66cbc4d396a160b2d2bb95b1c5607aff5750c6dfbcf5635c9e761b7b8031fc8f1478b43de58c60a316025724cc2c3aa884d6031c7ebaacff268217fa20137745ee6e01e633a4c0cde29b252559e7acf86d10a1701fc2c9c92e2e5d1c4506bd13c3a6049ed16ea7c459b72dd436769970ebbf8f103894fcdfa7d12af7a0a4fbfdf495b36e906dc20c79bb8745f65060dbecaa5ff001a3e4ca4032b906a7d05099711c91ff2172d3d7950f260b06961b73b1b792b190d77a9c12e8d8392d4c4486bfd10bfe05fad7fac3b83fa55425a6beb878f19237c2f2171ea282d707209bd4a40ce80036af3d4613892672f0144867d7fcc7d288fba5822ee719742d56b564758db8858fee6bd0121c7ef1b78cf76e01054d6dbe5cbdab9c6d5b6a315e3cc947b9252d6a725d67aaafe9ac248bd050930c96d00abc89a5bb13b644da1c6a6053ba970eb4a7c019382436d9d4e1c0640d9be6c3fd3f7a5d0abc42885577fcc4453e0b7aec1156af8a4b91a52fcabd6d2641d1f63d88c773461f214695fe8da955f33bce2304613c7098484e0907251b992bb1f3735017e479a98d7d8641daab5ae117bcc74cf4ea6c27d47d9385841b541ec88f5af7f0341be2027a0cad394dbd75da6dda33205874f7114dd6bff38260209ff91b8d655c1a26314f506949017357c81bb9cf74794cf3e9af6148b2cc3491f2a0ec9619aede7820a8aed96434cf38641d07c942268d2d5b0470f2195dfceaa79b7dc1f53c54f9aaf2a76ec4b8a7b62ddeb9083a9c80ecbe2b177609d2e73337a641bb1a474613de654b4f926e35f5d850e61aaac748d586aae35f31b59a73c19931d4442f6b07f95ef0f66e0f22faa66540ac1d549fe03bbd9cbb728fbaec98fc9db26c271ee555a1162e20c0462e56d1d343b1f031b30d6c9e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855b0d991b85453e9e6adf3a35c5f1ae0febb98533e5cfce6257527ef8f8de1da749fc84dcc1a60429bd54b1f32c83d11a1977208ccb8d8e7db7f9260a14eebff63753ce903e9324ab31d4b779bcb86beac77b5acd5562410e6bbec93f75634a69e6b9f1415dfdc8194b9b5cd42c8708fea0282ade4bf8db16d5b66d27e89eff3e0d279428a4edb99cd1acf30ec341a34d3d39bb92837bf6ffcc9dfc351611748164a22fcba276c174be9cc69c3a8e673b44cc3025e41258176c394396733ef48ce83a38527f6c767376527093aa21030632c8c4470d8a0077ec4211afc5c08f1a2b7efd22534bc8de7c21a86796b1a883dba8d9097035e1cb7c2cb8c3e87c7c0421ca777615fd827921833c88c222fafae893efaab7b37b7de047cb0a56464c3c57c06d1d673dbbb548f624537a1098005a6f9a20c064d948e8e5d48815a6be5d3877b0fe1638b2db4fef5472da09f34bbbd3f40e25721bf8e677ca12dc8691dcf36594416bbc114ecf264858dbe1814a28edfecbddfdef658133679f4d5345f1f63fae01b023c89bce59dbdcc44e8e9ce9566d61e4eada68a636fbba82da140910d91f3b46ec8c0e3f83a13170dde45c8d7c15eb514a53d171b01729082e0d286d20cb90fa114622202453e18b9e36c22430d1cbddaa69f9c1a57a49d5c415948c9f60f3a2b6f3c2d6ac51101eafc66c187aa412f632a690ffef1887b3e94c83d470515bfb50c8e1a2688ffb3ab1e70a712e7ee3c73cd56c026b6094b3fe9ea447fe9cf774fdee896e2ae17fa1ea1827088fa878c18164d704367f7201f95c10f465ec7d5e681d2733f9e3e5822dc08c1a54669bfdb818b9f566dc7aa8b32cb8f21c6f670bd0af844b59023619a48850410106434138d3bb3e56780ccec941a62506f546396f79b10b89fd81a7d1759e9a713372dc3dcde12c81887f560df138c3dcc5994f375e79225663b482d5a807fcefb18ba2669e41b79f1d029c946f7b33586e4ca86baa54ec66a3cc94f81c8b838ad6f7fb92544d0bdf715e2323da5c6e4815ed560bc01c4915d1a07d745e49963a4094e3734fd719f381bf34f5b144d9d20198948b25e073be9b1c7599ec18432b911908555fbe4ea49a4646618619e5d30a64eb6116e180ab3c834be703da5307aa2f4ec2e22e43efbcde0d56f1adeecd9a4612844ec124eaed197e3ec1374a0872dbf9ef605a85428ca13017e9219a10a1039683f632bd30ebc940558c1a201887902f92370cddf698a5441fc71bcb008f4a1d7b5b581aefa901c13b39df957a4e486539e831918309a3dc891bb2a62ad7ee304e54b956b1acde3385213df69e90f1ed2fc2e89082884ab39ec243d4d7cd20b67276411d077db4b44fc6406800edc8577f85668eca3b4268c12f0adf142a7b3d198281631b5e2f8ccbfd7a4aecb0088b9541d772049ad9d4007b8767fd2f705c9b222044bd79a1d83f02c0fa2c17e950fc210c302335b99620cda6d1ff3fbb4c048499bd54348ceb810e6fc533781927cccc3504df6c045ab7fd21fe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855468dc8323f8e90d04df141c11ff78bcb3c4203cbb92b26d65bc9fa4af106048aeb9016c79c13f7cda7371c55330144455932c96469c9cc1123bfd53c19e0ee202db0a6caab6439a9256e449a2c1eac75e51e687d3e56bd8be8796215b48f8023f8422bd11f80e8792d3c2f4033ee9e76117f66deb537114478667f4932773642cc507154203d819b8b58ec5cddd35b66da4c61a849e3f926adde47a7597286384146a82e1df460f949e2ba2c3ac2fc54a8c29211582c8957e2ad66a0e18ed0df8f9758a76219cde6b757251c4d5d5312cc6891205b0089a4a64bb35f3b451ffac723096fc9143008ff7b2964c3d6f3a276d54b3179963ec3e5f29ff735661f6ce3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855486f562d74a95ded57cc0ef2ff77e9b461cb7f2c2348fa7808c30e44ce4b5b74a234874bf26751042c7d9f0f5064c9b42ef23efb98b70ac0c5328dc0998ae01b1e57f04d30af8d3b7ce98dc6488f6e758e449c60f68c4e5d9de6a88c960aee29ca94b651077c2b8e34c9858fe863eb893fec572a4aa3ea8157b4f163073fde888aa105b8929cdeac0af9d307fd75c322915de97c758c1a07a4f1ec332c3ec9f607e61c4dd35a88f3458a22cfafaf7ed3f6704ba152836c2dde795d1618e4f54993e23d8973d10ac3bf094f0cf301ccbe222b673fc8a52ca372cbb17fdcbe2e3e303798f6bf38372e7be06dc98c6219ff4cecb6db44292d1aed5789804349415dcc8f2e3996207f1a39a08d602a8a9da1c47c81eda91d96c3734a4516ead528146d096768e5f9fcaf8d836058224e8d1d806d19be8181f9425fc2ad5f7da9a6b7159784801da447c37b225ac685dfc5617c4cd2f587578a030fb2467710c66870511d2c9cae9e28d41ec5de56d8a28029c6df798b7800a647ba967cec55a2c84f0827d3d673b76d2acf5e8440d51c729d646cf3f0a73846f57662fb8d4f6d759f7c87acc2850afa8b9b2b7aa23d76d6cfe35deb80f092b6c8d4ee9fb730b3ca2aa9ed4a267fcf099b530b0d6757428d388bba4927aa80f3c777d37dfc0aa394ece0eebb32efc63c321facf4ce3947b90ccf3d27d63cb279d29e8653caff26dc009b0c260da22d1826768ef77ec857c246ddeb99fefa9f6359d92ceecb22485d14e9f4c84aac57558d859b34dfe75b0bd0aeb6913abefe6476013d5b419850e4a7ca23806894bd6ae8d6a5d0ba6ec9e3a3b11d6bef367b527f7a5bba42949d8d2786a30bb5096823da60b122ef0dd57a7346ff7306a73a82945658393c8bcab5c12f08afa79140365697fbf22e3a463f777428e0004d801ec30201e97c9bd19f66f690d25f242285da36b0de1fd89949c831a7a8cde7208603c1ce42fae921012910ea934d9545e29f3b818cccaa21fbcebe2dfa9b289ddfdeff4b8e5ccc380660d11f054bcf3245b2e79ee9e6c7715e4ec98b9da2e73d7e7338f3e3914b9cd859390d6336db91d6ab62326d82dba62dcb2308917468af6a7963a96b6a81b04d6ad681171c82581db31bb5ff958e3ae7e9b490d06338e1ea63a8086c32720a2d648de5ccc042a3b73ff68f900d2448b70cbaa34e1fcb32351e1eb8a8b9aabd2a4658b4cb8f4bf345a8256b389663a4dc08b570d360e4587cd8496eabe94dc4f60662b0a91c40a0b509313891e6ac6ff93927aeaa5f5edd9b38f42af1ff4c591051215b4a3f830adb1656b3dffbd1ad85f3785cce0df4aa6f2b69c9a9d1a63f3649fb040a9e0cbcdec254a00007f543dccbd4a68544be8301ac6202bb70044a16c7258f44c7229d9985da83e1f8466cb4410dce47e977cd89d1527668493d5ada6a6e6bf49d8335483e60bbd844ec18eaf7950fedc9fe5a0eafdb17bff49ab7494c11dd72e7c5f6ac05ad6a0929609902996168a0edfd5d029bbda8b799b81ffd09a3ba834fa09cf2652ecc3f7a4276f04ba03a514aecfb7af143124185eb5e277282ab49f9fd2ed7982cef5628025b1f83b74186e42f62d3e6ed959bf6076f99fed5d2bea8a1e01019747335a1dad654f77a205f94b45bb67f70e4b5c7292d0c8fac35da541eefd27c623c58fd65a4df20ca392d166f6b165c5e382754929bc7a422c54e47f148f50f9f44be073140219b3fba55951218a6a0b47d5dbef5634175d016add1c7bdbe50fedf4f86ead467b292aca7b80b2753157a7d56ab899ca3c7e7e219536d09b3e6d43bb74dabac0400fc5f40bb63176796748526fdfa6dd6eea6bc6c305ae8e8803ddf89ce7b2a32a4a79ebb82b66cbadedee70b48594a7f0e1c74ad51b19fbdc4f95f15b65ab3bbb1ccaaa2df17f95791bf77de3fa4a49bd18177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643298fe483955b6a9db11d452a124bb2312cbf98b073de868f210a2ad4e82164d50a1cbe5c0e9f8e8ba95b19e0985462a4879a9a573c7eedde88aeddbd9ec142d8f0d53c3ee070ba5479ca151ee0b437a7c1ef91b55e471932ee2f23dd9e81b4531944d86ba4d5f49a45c3375a218fb1f9a484b3f36bfcab526cbe0b5c12d3e70ce22cee0a57bc2f917193aa014156b6b3106969419ea73a288fc07e80d8fd10fa718e137c73a85acc6f5d547776c06de4e7d9791e0ef605fd3ba73e643a91f233../paper/notfound.tmpl../../emacs/site-lisp/hg-test-mode.el../../emacs/site-lisp/mercurial.el../../emacs/site-lisp/mq.elrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootmercurial-5.9.1-150400.3.3.1.src.rpmconfig(mercurial)hgmercurialmercurial(aarch-64)@@@@@@@@@@    /usr/bin/python3/usr/bin/wishca-certificatesconfig(mercurial)ld-linux-aarch64.so.1()(64bit)ld-linux-aarch64.so.1(GLIBC_2.17)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.17)(64bit)libpython3.6m.so.1.0()(64bit)python(abi)python3-cursespython3-xmlrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)5.9.1-150400.3.3.13.63.0.4-14.6.0-14.0-15.2-14.14.3dGaMaHwa0````j`!'_v@_u@_xg_P_)M^@^ۅ@^@^@^s^^AE^,]B]6@]]~']D%]$] #\@\}\\T4\4\[@[ݍ[][@[p!@[;e@[oZZľ@ZZ@ZvZ@Y@Y@YJY\Y @XXXoX@W@W9W]NW;W(W'A@VVV@VwV@Vd#@VC-V?9@VUU@Uz@UF UTT@T T@TT@Tg@@tiwai@suse.comsweiberg@suse.comexpeehaa@outlook.comdevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infoandreas.stieger@gmx.dedevelop7@develop7.infoandreas.stieger@gmx.dedevelop7@develop7.infodevelop7@develop7.infoandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.dedevelop7@develop7.infomcepl@suse.comandreas.stieger@gmx.dedevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infowr@rosenauer.orgdevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infotiwai@suse.detiwai@suse.dedevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infompluskal@suse.comdevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infoastieger@suse.comdevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infowr@rosenauer.orgdevelop7@develop7.infowr@rosenauer.orgwr@rosenauer.orgwr@rosenauer.orgwr@rosenauer.orgwr@rosenauer.orgdevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infowr@rosenauer.orgmatwey.kornilov@gmail.comdevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.info- Fix unexprted abort at cloning a repo (bsc#1210707): mercurial-5.9.1-bsc1210707.patch- Adding bug and CVE references from SLE to prepare the submission for SLE 15 SP4/Leap 15.4 - CVE-2019-3902 (bsc#1133035) not affecting versions 5.0+ SLE internal patches removed: * hg-CVE-2019-3902-fix1.patch * hg-CVE-2019-3902-fix2.patch * hg-CVE-2019-3902-fix3.patch - CVE-2018-17983 (bsc#1110899) not affecting versions 4.7.2+ SLE internal patch removed: * hg-CVE-2018-17983.patch - CVE-2018-13346 (bsc#1100354), CVE-2018-13347 (bsc#1100355), CVE-2018-13348 (bsc#1100353) not affecting versions 4.6.1+ SLE internal patches removed: * hg-mpatch-fix01.patch * hg-mpatch-fix02.patch * hg-mpatch-fix03.patch * hg-mpatch-fix04.patch * hg-mpatch-fix05.patch * hg-mpatch-fix06.patch * hg-mpatch-fix07.patch * hg-mpatch-fix08.patch * hg-mpatch-fix09.patch- Provide mercurial tests in a package mercurial-tests.- Mercurial 5.9.1 No upstream release notes, see https://www.mercurial-scm.org/repo/hg/log?rev=5.9..5.9.1 for changelog - Mercurial 5.9 + New Features * `hg config` now has a `--source` option to show where each configuration value comes from.- Mercurial 5.8.1 No upstream release notes, see https://www.mercurial-scm.org/repo/hg/log?rev=5.8..5.8.1 for changes- Mercurial 5.8 + New Features * `hg purge` is now a core command using `--confirm` by default. * The `rev-branch-cache` is now updated incrementally whenever changesets are added. * The new options `experimental.bundlecompthreads` and `experimental.bundlecompthreads.` can be used to instruct the compression engines for bundle operations to use multiple threads for compression. The default is single threaded operation. Currently only supported for zstd. + Default Format Change These changes affects newly created repositories (or new clone) done with Mercurial 5.8. * The `ZSTD` compression will now be used by default for new repositories when available. This compression format was introduced in Mercurial 5.0, released in May 2019. See `hg help config.format.revlog-compression` for details. * Mercurial installation built with the Rust parts will now use the "persistent nodemap" feature by default. This feature was introduced in Mercurial 5.4 (May 2020). However Mercurial instalation built without the fast Rust implementation will refuse to interract with them by default. This restriction can be lifted through configuration. See `hg help config.format.use-persistent-nodemap` for details + New Experimental Features * There's a new `diff.merge` config option to show the changes relative to an automerge for merge changesets. This makes it easier to detect and review manual changes performed in merge changesets. It is supported by `hg diff --change`, `hg log -p` `hg incoming -p`, and `hg outgoing -p` so far. + Bug Fixes * gracefully recover from inconsistent persistent-nodemap data from disk. + Backwards Compatibility Changes * In normal repositories, the first parent of a changeset is not null, unless both parents are null (like the first changeset). Some legacy repositories violate this condition. The revlog code will now silentely swap the parents if this condition is tested. This can change the output of `hg log` when explicitly asking for first or second parent. The changesets "nodeid" are not affected. + Internal API Changes * `changelog.branchinfo` is deprecated and will be removed after 5.8. It is superseded by `changelogrevision.branchinfo`. * Callbacks for revlog.addgroup and the changelog._nodeduplicatecallback hook now get a revision number as argument instead of a node. * revlog.addrevision returns the revision number instead of the node. * `nodes.nullid` and related constants are being phased out as part of the deprecation of SHA1. Repository instances and related classes provide access via `nodeconstants` and in some cases `nullid` attributes. - updated mercurial-locale-path-fix.patch- enable building `chg` (thanks @expehaa)- Mercurial 5.7.1 * No upstream release notes, see https://www.mercurial-scm.org/repo/hg/log?rev=tag%28%225.7%22%29%3A%3Atag%28%225.7.1%22%29- added the _service file for updating sources with single command - Mercurial 5.7 This is a regularly-scheduled quarterly feature release. + New Features * There is a new config section for templates used by hg commands. It is called `[command-templates]`. Some existing config options have been deprecated in favor of config options in the new section. These are: `ui.logtemplate` to `command-templates.log`, `ui.graphnodetemplate` to `command-templates.graphnode`, `ui.mergemarkertemplate` to `command-templates.mergemarker`, `ui.pre-merge-tool-output-template` to `command-templates.pre-merge-tool-output`. * There is a new set of config options for the template used for the one-line commit summary displayed by various commands, such as `hg rebase`. The main one is `command-templates.oneline-summary`. That can be overridden per command with `command-templates.oneline-summary.`, where `` can be e.g. `rebase`. As part of this effort, the default format from `hg rebase` was reorganized a bit. * `hg purge` is now a core command using `--confirm` by default. * `hg strip`, from the strip extension, is now a core command, `hg debugstrip`. The extension remains for compatibility. * `hg diff` and `hg extdiff` now support `--from ` and `--to ` arguments as clearer alternatives to `-r `. `-r ` has been deprecated. * The memory footprint per changeset during pull/unbundle operations has been further reduced. * There is a new internal merge tool called `internal:mergediff` (can be set as the value for the `merge` config in the `[ui]` section). It resolves merges the same was as `internal:merge` and `internal:merge3`, but it shows conflicts differently. Instead of showing 2 or 3 snapshots of the conflicting pieces of code, it shows one snapshot and a diff. This may be useful when at least one side of the conflict is similar to the base. The new marker style is also supported by "premerge" as `merge-tools..premerge=keep-mergediff`. * External hooks are now called with `HGPLAIN=1` preset. This has the side effect of ignoring aliases, templates, revsetaliases, and a few other config options in any `hg` command spawned by the hook. The previous behavior can be restored by setting HGPLAINEXCEPT appropriately in the parent process. See `hg help environment` for the list of items, and how to set it. * The `branchmap` cache is updated more intelligently and can be significantly faster for repositories with many branches and changesets. * The `rev-branch-cache` is now updated incrementally whenever changesets are added. + New Experimental Features * `experimental.single-head-per-branch:public-changes-only` can be used restrict the single head check to public revision. This is useful for overlay repository that have both a publishing and non-publishing view of the same storage. + Backwards Compatibility Changes * `--force-lock` and `--force-wlock` options on `hg debuglock` command are renamed to `--force-free-lock` and `--force-free-wlock` respectively. + Internal API Changes * `changelog.branchinfo` is deprecated and will be removed after 5.8. It is superseded by `changelogrevision.branchinfo`.- mercurial 5.6.1: * no upstream changelog- Mercurial 5.6 This is a regularly-scheduled quarterly feature release. * New Features + `hg mv -A` can now be used with `--at-rev`. It behaves just like `hg cp -A --at-rev`, i.e. it marks the destination as a copy of the source whether or not the source still exists but the source must exist in the parent revision). + New revset predicate `diffcontains(pattern)` for filtering revisions the same way as `hg grep --diff pattern`. + The memory footprint per changeset and per file during pull/unbundle operations has been significantly reduced. * Internal API Changes + `merge.update()` is now private (renamed to `_update()`). Hopefully the higher-level functions available in the same module cover your use cases. + `phases.registernew` now takes a set of revisions instead of a list of nodes. `phases.advanceboundary` takes an optional set of revisions in addition to the list of nodes. The corresponding members of the `phasecache` class follow this change. + The `addgroup` member of `revlog` classes no longer keeps a list of all found nodes. It now returns `True` if a node was found in the group. An optional callback for duplicated nodes can be used by callers to keep track of all nodes themselve. + The `_chaininfocache` of `revlog` classes has been changed from a dict to a LRU cache.- Mercurial 5.5.2: * fix a crash in the log command * bug fixes in hgdemandimport * stip: with --keep, consider all revs "removed" from the wcp- Mercurial 5.5.1: Regularly scheduled bug fix release. * bug fixes + keepalive: Do not append _rbuf if _raw_readinto exists (issue6356)- Mercurial 5.5: This is a regularly-scheduled quarterly feature release * New Features + clonebundles can be annotated with the expected memory requirements using the `REQUIREDRAM` option. This allows clients to skip bundles created with large zstd windows and fallback to larger, but less demanding bundles. + The `phabricator` extension now provides more functionality of the arcanist CLI like changing the status of a differential. + Phases processing is much faster, especially for repositories with old non-public changesets. * New Experimental Features + The core of some hg operations have been (and are being) implemented in rust, for speed. `hg status` on a repository with 300k tracked files goes from 1.8s to 0.6s for instance. This has currently been tested only on linux, and does not build on windows. See rust/README.rst in the mercurial repository for instructions to opt into this. + An experimental config `rewrite.empty-successor` was introduced to control what happens when rewrite operations result in empty changesets. * Bug Fixes + For the case when connected to a TTY, stdout was fixed to be line-buffered on Python 3 (where it was block-buffered before, causing the process to seem hanging) and Windows on Python 2 (where it was unbuffered before). + Subversion sources of the convert extension were fixed to work on Python 3. + Subversion sources of the convert extension now interpret the encoding of URLs like Subversion. Previously, there were situations where the convert extension recognized a repository as present but Subversion did not, and vice versa. + The empty changeset check of in-memory rebases was fixed to match that of normal rebases (and that of the commit command). + The push command now checks the correct set of outgoing changesets for obsolete and unstable changesets. Previously, it could happen that the check prevented pushing changesets which were already on the server. * Backwards Compatibility Changes + Mercurial now requires at least Python 2.7.9 or a Python version that backported modern SSL/TLS features (as defined in PEP 466), and that Python was compiled against a OpenSSL version supporting TLS 1.1 or TLS 1.2 (likely this requires the OpenSSL version to be at least 1.0.1). + The `hg perfwrite` command from contrib/perf.py was made more flexible and changed its default behavior. To get the previous behavior, run `hg perfwrite --nlines=100000 --nitems=1 --item='Testing write performance' --batch-line`. + The absorb extension now preserves changesets with no file changes that can be created by the commit command (those which change the branch name compared to the parent and those closing a branch head).- Mercurial 5.4.2: * rebase: avoid clobbering wdir() with --dry-run or --confirm * curses: do not initialize LC_ALL to user settings- Mercurial 5.4.1: * graft-state: save --base in graft's state, fixing bug with graft --continue * graft: fix --base value to be saved in state file * dirstate: make sure the dirstate is loaded before the changelog * bash_completion: do not use aliased hg if it sources a script * demandimport: fix compatibility with meta path finders w/o find_spec() method * flags: read flag from dirstate/disk for workingcopyctx * fsmonitor: coerce 'clock' variable to byte-string * url: fix a bytes vs str crash in processing proxy headers- Mercurial 5.4: * hg purge/hg clean can now delete ignored files instead of untracked files, with the new -i flag. * hg pull now has a --confirm flag to prompt before applying changes. Config option pull.confirm is also added for that. * hg log now defaults to using an '%' symbol for commits involved in unresolved merge conflicts. That includes unresolved conflicts caused by e.g. hg update --merge and hg graft. '@' still takes precedence, so what used to be marked '@' still is. * hg copy --forget can be used to unmark a file as copied. * The format.revlog-compression configuration entry now accept a list. The first available option will be used. for example setting:: [format] revlog-compression=zstd, zlib Will use zstd compression for new repositories is available, and will simply fall back to zlib if not. * hg debugmergestate output is now templated, which may be useful e.g. for IDEs that want to help the user resolve merge conflicts. * hg copy now supports a --at-rev argument to mark files as copied in the specified commit. It only works with --after for now (i.e., it's only useful for marking files copied using non-hg cp as copied). * Use hg copy --forget --at-rev REV to unmark already committed copies. * bug fixes * changes that may affect backwards compatibility - there is no canonical upstream signing key, remove- fix bash completion script (boo#1170703)- Mercurial 5.3.1- Mercurial 5.3 This is a regularly-scheduled quarterly feature release. See release notes at https://www.mercurial-scm.org/wiki/Release5.3 - drop mercurial-4.8-python2-shebang.patch because of switch to Python 3 - fixed and refreshed mercurial-locale-path-fix.patch- Switch Mercurial to Python 3 (it should be supported already, according to https://www.mercurial-scm.org/wiki/Python3) - Fix rpmlint warnings.- Mercurial 5.2.1- Mercurial 5.2 This is a regularly-scheduled quarterly feature release. + New Features * The amend extension supports the `--currentuser` argument. * The amend extension supports the `--close-branch` argument. * The amend extension supports the `--secret` argument. * The uncommit extension supports the `rewrite.update-timestamp` config option. + Backwards Compatibility Changes * A shell that supports `$(command)` syntax for command substitution is now required for running the test suite. The test runner normally uses `sh`, so if that is a shell that doesn't support `$(command)` syntax, you can override it by setting `$HGTEST_SHELL` or by passing it to `run-tests.py --shell `. * The (experimental) narrow extension's wire protocol changed. If you're using it, you'll need to make sure to upgrade server and client at the same time. - refreshed mercurial.keyring- Mercurial 5.1.2 Regularly scheduled bug fix release. * extensions + phabricator: don't abort if property writing fails during amending * tests + test: allow different result for zstd compression (issue6188)- Mercurial 5.1.1 Regularly scheduled bug fix release. * commands + bookmarks: actual fix for race condition deleting bookmark * core + exchange: abort on pushing bookmarks pointing to secret changesets (issue6159) + python-zstandard: apply big-endian fix (issue6188) + fncache: make debugrebuildfncache not fail on broken fncache * tests + various test runner fixes + fixed use of `tr --delete` for tr(1) portability- Mercurial 5.1 This is a regularly-scheduled quarterly feature release. * New Features + New config `commands.commit.post-status` shows status after successful commit. + `hg root` now has templating support, including support for showing where a repo share's source is. See `hg help -v root` for details. + New `--force-close-branch` flag for `hg commit` to forcibly close branch from a non-head changeset. + The curses-based interface for commands like `hg commit -i` now supports a range-select mechanism. Select the first line using space like before, navigate to the last line, and press X (capital x) to set all items in the range at once. Lowercase x has been added as a synonym for space to help reinforce the mechanism, and pressing enter/return continues to be a synonym for "toggle the current line and move down to the next item in this section." * New Experimental Features + New config `experimental.log.topo` makes `hg log -G` use topological sorting. This is especially useful for aliases since it lets the alias accept an `-r` option while still using topological sorting with or without the -r (unlike if you use the `sort(..., topo)` revset). * Bug Fixes + issue4292: "hg log and {files} {file_adds} {file_mods} {file_dels} in template show wrong files on merged revision". See details in "Backwards Compatibility Changes". * Backwards Compatibility Changes + Removed (experimental) support for log graph lines mixing parent/grandparent styles. Setting e.g. `experimental.graphstyle.parent = !` and `experimental.graphstyle.grandparent = 3.` would use `!` for the first three lines of the graph and then `..`. This is no longer supported. + If ui.origbackuppath had been (incorrectly) configured to point to a file, we will now replace that file by a directory and put backups in that directory. This is similar to how we would previously replace files * in* the configured directory by subdirectories. + Template keyword `{file_mods}`, `{file_adds}`, and `{file_dels}` have changed behavior on merge commits. They used to be relative to the first parent, but they now consider both parents. `{file_adds}` shows files that exists in the commit but did not exist in either parent. `{file_dels}` shows files that do not exist in the commit but existed in either parent. `{file_mods}` show the remaining files from `{files}` that were not in the other two sets. * Internal API Changes + Matchers are no longer iterable. Use `match.files()` instead. + `match.visitdir()` and `match.visitchildrenset()` now expect the empty string instead of `'.'` to indicate the root directory. + `util.dirs()` and `util.finddirs()` now include an entry for the root directory (empty string). + `shelve` is no longer an extension now. It will be turned on by default. + New API to manage unfinished operations: Earlier there were distinct APIs which dealt with unfinished states and separate lists maintaining them that are `cmdutil.afterresolvestates`, `cmdutil.unfinishedstates` and `cmdutil.STATES`. Now these have been unified to a single API which handles the various states and their utilities. This API has been added to `state.py`. Now instead of adding to these 3 lists independently a state for a new operation can be registered using `addunfinished()` in `state` module. + `cmdutil.checkunfinished()` now includes detection for merge too. + merge abort has been disallowed in case an operation of higher precedence is in progress to avoid cases of partial abort of operations. + We used to automatically attempt to make extensions compatible with Python 3 (by translating their source code while loading it). We no longer do that.- Mercurial 5.0.2 A regularly scheduled bugfix release. + commands * Help fixes on hg mv and hg cp + unsorted * debugrevlog: fix average size computation for empty data (issue6167) * Fix an obscure data corruption bug with musl libc (and presumably others). See https://www.mercurial-scm.org/repo/hg-committed/rev/97ada9b8d51b for more details.- Mercurial 5.0.1 A regularly scheduled bugfix release. + commands * bookmark: also make bookmark cache depends of the changelog * commit: allow --interactive to work again when naming a directory (issue6131) + unsorted * manifest: avoid corruption by dropping removed files with pure (issue5801) * sslutil: fsencode path returned by certifi (issue6132)- Mercurial 5.0 This is a regularly-scheduled quarterly feature release. + New Features * Python 3 Support (Beta) * `ui.relative-paths` option for getting relative path output from most commands. This is enabled when `ui.tweakdefaults` is enabled. * `expectsize()` revset errors out if revset has unexpected number of elements. * `config()` template function for getting a config value. * `{negrev}` template keyword shows the negative revision number. This is convenient because it is usually shorter than the positive number, but note that it is less stable. * `hg uncommit` now has an `--allow-dirty-working-copy` option. * `hg shelve` now has `--keep` option, which shelves but also leaves the working directory unchanged. * `hg diff` will now include specified files in subrepos. * `hg recover` now has a `--no-verify` option + Other Improvements * Improved color scheme for histedit's curses interface, making it more consistent with the curses hunk selector. + Bug Fixes * Histedit's curse interface has improved support for non ascii characters. + Backwards Compatibility Changes * color: change color of grep.rev label (BC) * commit: if interactive, look elsewhere for whitespace settings (BC) * diff: make sure we output stat even when --git is not passed (issue4037) (BC) * uncommit: abort if an explicitly given file cannot be uncommitted (BC)- require openssl python module for runtime (not only build) (boo#1132347)- Mercurial 4.9.1 A regularly scheduled bugfix release, late due to vacations and similar disruptions at the regular time. * commands + record: prevent commits that don't pick up dirty subrepo changes (issue6102) * extensions + rebase: add missing dashes in help text * unsorted + subrepo: avoid false unsafe path detection on Windows + test-https: add some more known failure messages of client certs (issue6030)- Mercurial 4.9 This is a regularly-scheduled quarterly feature release. See complete changelog at https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_4.9_.282019-02-01.29 * Security Fixes It was possible to use symlinks and subrepositories to defeat Mercurial's path-checking logic and write files outside a repository. This has been fixed. Users on older versions can either disable subrepositories witt ``` [subrepos] allowed = false ``` in their configuration or by ensuring any cloned repositories don't contain malicious symlinks. * New Features + 'hg histedit' will now present a curses UI if curses is available and 'ui.interface' or 'ui.interface.histedit' is set to 'curses'. + The 'sparse-revlog' delta strategy is enabled by default for new repositories. See `hg help config.format.sparse-revlog` for details. * Other Notable Features + New `rewrite.update-timestamp=True` option to update the commit timestamp on history editing (e.g. amend.) + New `ui.message-output=stderr` option for scripting, which prevents status messages from interleaved. + New `rootglob:` filename pattern for a glob that is rooted at the root of the repository. See `hg help patterns` and `hg help hgignore` for details. + Some more reimplementation of ancestry algorithms in Rust for better performance. * Backwards Compatibility Changes + Boolean options passed to the logtoprocess extension are now formatted as "0" or "1" instead of "None", "False", or "True". + The logtoprocess extension no longer supports invalid "ui.log()" arguments. A log message is always formatted and passed in to the "$MSG1" environment variable. * Internal API Changes + Status messages may be sent to a dedicated stream depending on configuration. Don't use "ui.status()", etc. as a shorthand for conditional writes. Use "ui.write()" for data output. + Add 'exthelper' class to simplify extension writing by allowing functions, commands, and configitems to be registered via annotations. The previous APIs are still available for use. + The extension hook "extsetup" without a 'ui' argument has been deprecated, and will be removed in the next version. Add a 'ui' argument to avoid the deprecation warning.- Mercurial 4.8.2 This is a regularly-scheduled bugfix release containing following fixes: * commands + update: do not pass in user revspec as default destination (issue6044) * core + match: fix assertion for fileset with no context (issue6046) + revlog: catch delta base value under -1 + revlog: catch revlog corruption in index_baserev + server: always close http socket if responding with an error (issue6033) + vfs: ensure closewrapbase fh doesn't escape by entering context manager * extensions + phabricator: properly encode boolean types in the request body * unsorted + windows: ensure mixedfilemodewrapper fd doesn't escape by entering context mgr + worker: do not swallow exception occurred in main process- Mercurial 4.8.1 A regularly scheduled bugfix release. Some security fixes are included, but all are expected to be low-risk. * commands - commandserver: get around ETIMEDOUT raised by selectors2 - graft: do not try to skip rev derived from ancestor more than once (issue6024) - verify: provide unit to ui.makeprogress() * core - revlog: fix out-of-bounds access by negative parents read from revlog (SEC) * extensions - rebase: abort in-mem rebase if there's a dirty merge state - rebase: fix dir/file conflict detection when using in-mem merge - rebase: fix path auditing to audit path relative to repo root (issue5818) - rebase: preserve working copy when redoing in-mem rebase on disk * unsorted - tests: stabilize test-inherit-mode.t on FreeBSD and macOS (issue6026)- mercurial-4.8-python2-shebang.patch: fixes boo#1114895 - explicitly depend on Python 2.7+- Mercurial 4.8 This is a regularly-scheduled quarterly feature release. See release overview at https://www.mercurial-scm.org/wiki/Release4.8 and complete changelog at https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_4.8_.282018-11-02.29- Mercurial 4.7.2 This is a regularly-scheduled bugfix release containing following fixes: * security + Fix a potential out-of-bounds read in manifest parsing C code. * core + various minor correctness fixes in revsets for commonancestors() and similar * unsorted + chgserver: do not send system() back to client if stdio redirected (issue5992) + procutil: compare fd number to see if stdio protection is needed (issue5992)- Mercurial 4.7.1 This is a regularly-scheduled bugfix release containing following fixes: * commands + merge: do not delete untracked files silently (issue5962) * core + revlog: fix descendant deprecated method * hgweb + hgweb: load revcount + 1 entries to fill nextentry in log page (issue5972) * performance + remotephase: avoid full changelog iteration (issue5964) + remotephase: fast path newheads computation in simple case (issue5964) + scmutil: avoid quadratic membership testing (issue5969) + sparse-revlog: fix delta validity computation- Mercurial 4.7 This is a regularly-scheduled quarterly feature release and has it's own release notes page which can be found here: [Full release notes](https://www.mercurial-scm.org/wiki/Release4.7)- Mercurial 4.6.2 This is a regularly-scheduled bugfix release containing following fixes: * merge: do not fill manifest of committed revision with pseudo node (issue5526) * crecord: fix line number in hunk header (issue5917) * lazymanifest: don't crash when out of memory (issue5916) * procutil: use unbuffered stdout on Windows- Mercurial 4.6.1 This is a regularly-scheduled bugfix release that also contains security fixes. * Security Fixes Multiple issues found in mpatch.c with a fuzzer: + OVE-20180430-0001 + OVE-20180430-0002 + OVE-20180430-0004 With the following fixes: mpatch: be more careful about parsing binary patch data (SEC) mpatch: protect against underflow in mpatch_apply (SEC) mpatch: ensure fragment start isn't past the end of orig (SEC) mpatch: fix UB in int overflows in gather() (SEC) mpatch: fix UB integer overflows in discard() (SEC) mpatch: avoid integer overflow in mpatch_decode (SEC) mpatch: avoid integer overflow in combine() (SEC) No exploits are known at the time, however, it is highly recommended that all users upgrade. * Bug Fixes Also included in this release are the following, + zstandard: pull in bug fixes from upstream 0.9.1 (issue5884) + bundle2: fix old clients from reading newer format (issue5872) + bdiff: fix xdiff long/int64 conversion (issue5885) + push: continue without locking on lock failure other than EEXIST (issue5882) + lfs: fix crash in command server (issue5902) + hghave: fix deadlock in test runner + rebase: fix error when computing obsoletenotrebased (issue5907) + rebase: prioritize indicating an interrupted rebase over update (issue5838) + revset: pass in lookup function to matchany() (issue5879)- Mercurial 4.6 This is a regularly-scheduled quarterly feature release. See complete changelog at https://www.mercurial-scm.org/wiki/Release4.6- Mercurial 4.5.3 This is a regularly-scheduled bugfix release. * Bug Fixes + rebase: on abort, don't strip commits that didn't need to be rebased (issue5822) + hgweb: garbage collect on every request + amend: abort if unresolved merge conflicts found (issue5805)- Modernize spec-file by calling spec-cleaner- Mercurial 4.5.2 (4.5.2 was released immediately after 4.5.1 to fix a release oversight.) 1. Security Fixes (CVE-2018-1000132,bsc#1085211) All versions of Mercurial prior to 4.5.2 have vulnerabilities in the HTTP server that allow permissions bypass to: * Perform writes on repositories that should be read-only * Perform reads on repositories that shouldn't allow read access 2. Backwards Compatibility Changes The "batch" wire protocol command now enforces permissions of each invoked sub-command. Wire protocol commands must define their operation type or the "batch" command will assume they can write data and will prevent their execution on HTTP servers unless the HTTP request method is POST, the server is configured to allow pushes, and the (possibly authenticated) HTTP user is authorized to perform a push. Wire protocol commands not defining their operation type in "wireproto.PERMISSIONS" are now assumed to be used for "push" operations and access control to run those commands is now enforced accordingly. 3. Bug Fixes fileset: don't abort when running copied() on a revision with a removed file date: fix parsing months setup: only allow Python 3 from a source checkout (issue5804) annotate: do not poorly split lines at CR (issue5798) subrepo: don't attempt to share remote sources (issue5793) subrepo: activate clone pooling to enable sharing with remote URLs changegroup: do not delta lfs revisions revlog: do not use delta for lfs revisions revlog: resolve lfs rawtext to vanilla rawtext before applying delta See full cnahgelog on https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_4.5.1_.2F_4.5.2_.282018-03-06.29- Mercurial 4.5 See full changelog on https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_4.5-rc_.282018-01-22.29 1. New Features 1.1. revert --interactive The revert command now accepts the flag --interactive to allow reverting only some of the changes to the specified files. 1.2. Accessing hidden changesets Set config option `experimental.directaccess = True` to access hidden changesets from read only commands. 1.3. githelp extension The githelp extension provides the `hg githelp` command. This command attempts to convert a git command to its Mercurial equivalent. The extension can be useful to Git users new to Mercurial. 1.4. Largefiles changes largefiles: add a 'debuglfput' command to put largefile into the store largefiles: add support for 'largefiles://' url scheme largefiles: allow to run 'debugupgraderepo' on repo with largefiles largefiles: convert EOL of hgrc before appending to bytes IO largefiles: explicitly set the source and sink types to 'hg' for lfconvert largefiles: modernize how capabilities are added to the wire protocol 2. hgweb changes hgweb now shows more information about commits: phase (if it's not public), obsolescence status (with a short explanation and links to the successors) and instabilities (e.g. orphan, phase-divergent or content-divergent). Client-side graph code has been simplified by delegating more work to the backend, so /graph page is now more in sync with /log page, visually and feature-wise. Unfortunately, this code change means that 3rd-party themes for 4.5+ are required to have graphentry.tmpl template available (copy it from the base theme if you don't use %include and then reference it in map file) and render entries in graph.tmpl -- look at one of the core themes to see what it needs to look like. JS functions that create graph vertices and edges are now available in Graph.prototype, making it possible to call the original functions from custom theme-specific functions if needed. Graph now shows different symbols for normal, branch-closing, obsolete and unstable commits, and marks currently checked out commit with a circle around its graph node. There's also now json-graph API endpoint that can be used for rendering commit graph in 3rd-party applications. 2.1. Other Changes When interactive revert is run against a revision other than the working directory parent, the diff shown is the diff to _apply_ to the working directory, rather than the diff to _discard_ from the working copy. This is in line with related user experiences with 'git' and appears to be less confusing with 'ui.interface=curses'. Let 'hg rebase' avoid content-divergence by skipping obsolete changesets (and their descendants) when they are present in the rebase set along with one of their successors but none of their successors is in destination. A new experimental config flag, `rebase.experimental.inmemory`, makes rebase perform an in-memory merge instead of doing it on-disk in the working copy. The `HGPLAINEXCEPT` environment variable can now include color to allow automatic output colorization in otherwise automated environments. A new `unamend` command in `uncommit` extension which undoes the effect of the amend command by creating a new changeset which was there before amend and moving the changes that were amended to the working directory. A '--abort' flag to merge command to abort the ongoing merge. An experimental flag '--rev' to 'hg branch' which can be used to change branch of changesets. bundle2 read I/O significantly improved bundle2 memory use significantly reduced during read clonebundle: it is now possible to serve the clonebundle using a git-lfs compatible server. templatefilters: add slashpath() to convert path separator to slash (issue5572) A new experimental config flag, 'inline-color-diff', adds within-line color diff capacity histedit: add support to output nodechanges using formatter to help with editor integrations 3. Backwards Compatibility Changes `log --follow-first -rREV`, which is deprecated, now follows the first parent of merge revisions from the specified REV just like `log --follow -rREV`. `log --follow -rREV FILE..` now follows file history across copies and renames. transaction: register summary callbacks only at start of transaction hgweb's graph view no longer supports browsers that lack support hgweb: only include graph-related data in jsdata variable on /graph pages graphlog: add another graph node type, unstable, using character * remove: print message for each file in verbose mode only while using '-A'- Mercurial 4.4.1 1. Notable changes * Git and Subversion subrepos have been disabled by default to mitigate a potential security risk if files overlapping with a subrepo managed to be committed to a repository. bsc#1071715 CVE-2017-17458 * Subrepos are now more paranoid about symlink traversal. * The share extension handles drive letters on Windows better. It is possible that a specially malformed repository can cause Git subrepositories to run arbitrary code in the form of a .git/hooks/post-update script checked in to the repository in Mercurial 4.4 and earlier. Typical use of Mercurial prevents construction of such repositories, but they can be created programmatically.- Mercurial 4.4 Notable changes Control whitespace settings for annotation on hgweb * /annotate URLs on hgweb now accept query string arguments to influence how whitespace changes impact results. * The arguments "ignorews," "ignorewsamount," "ignorewseol," and "ignoreblanklines" now have the same meaning as their [annotate] config section counterparts. Any provided setting overrides the server default. * HTML checkboxes have been added to the paper and gitweb themes to expose current whitespace settings and to easily modify the current view. Fast, heuristic copy-tracing A new fast heuristic algorithm for copytracing which assumes that the files moves are either: 1. renames in the same directory 2. moves in other directories with same names You can use this algorithm by setting 'experimental.copytrace=heuristics'. This setting performs full copytracing if both source and destination branches contains non-public changesets only. Other changes * Estimated time is more accurate with non-linear progress * "hg status -v" can now show unfinished state. For example, when in an unfinished rebase state, "hg status -v" might show: [#] The repository is in an unfinished *rebase* state. [#] No unresolved merge conflicts. [#] To continue: hg rebase --continue [#] To abort: hg rebase --abort * Added '--ignore-space-at-eol' diff option to ignore whitespace differences at line endings. * show: use consistent node length in views * show: decrease minimum displayed hash length from 5 to 4 * A new uncommit extension which provides 'hg uncommit' using which one can uncommit part or all of the changeset. This command undoes the effect of a local commit, returning the affected files to their uncommitted state. * 'hg clone --uncompressed' uses clone bundles when possible * 'hg annotate --skip' now prints a '*' on lines with skipped revisions * New 'commands.update.check' feature to adjust constraints on when 'hg update' will allow updates with a dirty working copy. * Add an experimental -L/--line-range FILE,FROMLINE:TOLINE option to 'hg log' command to follow the history of files by line range. In combination with -p/--patch option, only diff hunks within specified line range will be displayed. Feedback, especially on UX aspects, is welcome. * Print warning when fsmonitor isn't being used on a large repository Read rest of the changelog at https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_4.4_.282017-11-01.29 - Mercurial 4.3.3 * Prevent crashes when clearing progress bar. (issue5684) * rebase: move bookmarks with --keep (issue5682) - Mercurial 4.3.2 * restore compatibility with older versions of Python 2.7 by not using a bytearray with struct.unpack_from() * restore mingw compatibility for setup.py * hgwebdir: read 'web.template' untrusted (plugs potential security issue) * repair: preserve phase when not using generaldelta (issue5678) * ssh: fix flakey ssh errors on BSD systems * restore error handling behavior around certain I/O errors; the regressed behavior could result in transactions not being properly rolled back if stdio handles encountered errors (issue5658) * templatekw: choose {latesttag} by len(changes), not date (issue5659) * record: fix revert -i for lines without newline (issue5651) * mq: create non-lossy patches, also with custom global diff configuration - Fixed README file name (now it's README.rst)- Mercurial 4.3.1: This is a regularly-scheduled quarterly feature release, including the previous two security fixes (CVE-2017-1000115, CVE-2017-1000116) Notable changes: * experimental amend extension providing the amend command * experimental sparse extension * Support for Python 2.6 has been dropped. * Bundles created by the strip extension now store phase information. It will be restored when unbundling. * The strip extension now removes relevant obsmarkers. If a backup requested (the default), the obsmarkers are stored in the backup bundle and will be restored when unbundling. * hg show work (from the experimental show extension) now displays more info * hg show stack is a new view for the current, in-progress changeset and others around it * Mitigation for two security vulnerabilities- mercurial 4.2.3: security fix updates for CVE-2017-1000115 and CVE-2017-1000116: * Mercurial's symlink auditing was incomplete prior to 4.3, and could be abused to write to files outside the repository (CVE-2017-1000115 bsc#1053344) * Mercurial was not sanitizing hostnames passed to ssh, allowing shell injection attacks by specifying a hostname starting with - oProxyCommand (CVE-2017-1000116, bsc#1052696)- Mercurial 4.2.2 This is a regularly-scheduled bugfix release. * largefiles: avoid a crash when archiving a subrepo with largefiles disabled * rebase: also test abort from pretxnclose error * rebase: backed out changes 2519994d25ca and cf8ad0e6c0e4 (issue5610) * rebase: reinforce testing around precommit hook interrupting a rebase - Mercurial 4.2.1 This is a regularly-scheduled bugfix release. * `hg graft` now works when grafting across merges that were problematic before (b4e1e30528c7). * A race condition in `hg status` was partially fixed (issue5584). * The message about deprecated SHA-1 hashes in the [hostfingerprints] config section now references the correct syntax for replacing them with SHA-256 hashes (issue5559).- Mercurial 4.2 This is a regularly-scheduled quarterly feature release. * Notable changes + Pager support has been moved into core and is now enabled by default. This is now controlled with the ui.paginate setting. Note that in 4.2-rc, the ui.paginate option was named pager.enable. The old name has been dropped in the final release. If you had turned pagination off using pager.enable=False, please update your config. + Color support has also been moved into core and is now enabled by default (the ui.color setting now defaults to 'auto'). + The new experimental 'show' extension provides a way to view various information about your repository in an ergonomic way. It is deliberately designed for human consumption and not for scripting, so it doesn't carry the same backward compatibility guarantees as other commands. See 'hg help -e show' for more information. + Mercurial now requires `setuptools` on Windows- Mercurial 4.1.2 This is a regularly-scheduled bugfix release. + Mercurial should work inside IIS on Windows again. (issue5493) + zstd support now refuses to work on old bundle formats. (issue5506) + Merges involving subrepositories no longer crash in some cases. (issue5505) + Checking for new heads during push is no longer accidentally quadratic - Mercurial 4.1.1 This is a regularly-scheduled bugfix release. + Several incorrect mailing list addresses have been corrected. + Various error cases have been corrected during push and pull. + Minor issues that happened when Mercurial spawned worker processes have been fixed.- Mercurial 4.1 This is a regularly-scheduled quarterly feature release. + Features * A new extensible "compression engines" API has been implemented. Support for a new compression format can now be implemented in extensions. * New compression formats are fully supported in bundles and the wire protocol. There is experimental support for different compression in revlogs. * zstd - a new and exciting compression engine - is now distributed with Mercurial and built by default * HTTP payloads for many commands will now use zstd by default (as opposed to zlib) when both client and server support it. This can reduce server-side CPU usage to ~60% of original for operations like serving bundles. * zstd compressed bundles can be produced by specifying the `zstd` bundle type. e.g. `hg bundle -a -t zstd-v2 zstd-bundle.hg`. * A new statistical profiler has been added and made the default profiler for `--profile`. This profiler gives more accurate results than Python's built-in cProfile (the previous default) because the profiler overhead is much smaller. The output from `--profile` now displays the code hot path by default. This allows Mercurial developers to more accurately identify performance problems. * New `followlines(file, from:to, startrev=.)` revset predicate to track a part of changes. * Experimental support for additional git-diff features. * Troubled changes (from ChangesetEvolution) are noted more prominently in a few places. * An experimental hg debugupgraderepo command allows in-place upgrading of repositories to the latest storage format. + Improvements * Performance of reading individual revlog entries has been greatly improved. This will be noticeable when performing changelog scans on large repositories (such as when executing certain revsets). * The low-level content diffing algorithm is now ~2x faster. Operations that write data to the repository (like commit) can be noticeably faster as a result. See complete changelog at https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_4.1_.282017-2-1.29 - refreshed mercurial-locale-path-fix.patch and mercurial-hgk-path-fix.diff - refresh package keyring- Update to version 4.0.2: * demandimport: do not raise ImportError for unknown item in fromlist * posix: make poll() restart on interruption by signal * hgweb: add missing slash to file log url in rss style * hgweb: cache fctx.parents() in annotate command * vfs, scmutil: ignore EPERM at os.utime, which avoids ambiguity - Update package keyring- Mercurial 4.0 This is a regularly-scheduled quarterly feature release. Unlike other 4.0 software releases, this is simply 3.9 + .1, so it should be the usual pain-free upgrade. + Features * The following commands now also have experimental formatter support: 'hg version', 'hg grep' and 'hg config' * New template keywords and functions: `termwidth`, `mod(a, b)`, `relpath(path)` * Basic arithmetic operations in template such as `termwidth - 10` * `follow()` revset takes new `startrev` parameter * Bash completion now allows skipping potentially expensive status call for completing 'hg status' arguments, using $HGCOMPLETE_NOSTATUS environment variable + Improvements * A number of changes were made to move and copy tracking, to make sure move and copy information is not lost during commands like 'hg graft' * Compound revset expression is now properly ordered * Python 3 support has received a lot of improvements (but will take a lot of additional work) * zlib performance in hgweb is improved, and it's possible to control zlib compression level using server.zliblevel option - Refreshed mercurial-hgk-path-fix.diff and mercurial-locale-path-fix.patch- Mercurial 3.9.1 (2016-9-1) This is a regularly-scheduled bugfix release. * bundle2: fail faster when interrupted * bundle2: localize handleoutput remote prompts * convert: move svn config initializer out of the module level * debian: update source URL in copyright file * exchange: correctly specify url to unbundle (issue5145) * help: add example of '[templates]' usage * help: update link to wiki/CommandServer * osx: update bugzilla link in readme * revset: fix keyword arguments to go through optimization process * win32: update link to mailing list in readme * win32: update wiki link in mercurial.ini- Mercurial v3.9 + Features * ui.textwidth can now be set to define width of help text * separate() template function added * ui.rollback can be set to false to disable the hg rollback command * fail- hooks now run when a command fails * experimental.graphstyle.* config options to control styling of graphs in console * experimental.histedit.autoverb allows histedit lines beginning with "verb!" to be interpreted as histedit actions * [hostsecurity] config section for defining advanced per-host security settings * ability to define the SHA-256 and SHA-512 hashes of pinned server certificates * ability to define CA certificates on a per-host basis * ability to define the minimum TLS protocol version on a global or per-host basis * sort() revset can now perform topological sorts using the topo option * hgweb can now render JSON for filelog, filerevision, summary, and search web commands * [paths] entries can now define a pushrev sub-option to control which revisions to push by default * The experimental 'journal' extension was added, allowing users to view the previous positions of bookmarks and the working copy + Improvements This release includes many improvements, including (but not limited to): * performance of `hg diff` has been improved * chg now detects more changes to the configuration and execution environment * SSL/TLS code has been significantly refactored and now is consistent across all consumers (HTTPS, SMTPS) * performance improvements to server communication (particularly for the largefiles and remotefilelog extensions) * connections to servers whose certificate authority (CA) is unknown are now refused even if no CA certificates are available (see SecureConnections for details) * fingerprints of server certificates are now printed using SHA-256 instead of SHA-1 * reads and writes to certain files is now robust and avoids more race conditions and edge cases (see ExactCacheValidationPlan) * performance improvements to certain revsets * cloning will no longer prompt for a password multiple times when cloning from a server that requires a password * annotate view in hgweb now groups lines into blocks depending on their revision and highlights lines for the current revision * hgweb now displays extra information and also navigation links in popups for each line in annotate view- mercurial 3.8.3: * bookmarks: allow pushing active bookmark on new remote head * localrepo: prevent executable-bit only changes from being lost on amend * strip: invalidate phase cache after stripping changeset - verify source signature- Mercurial v3.8.2 This is an unscheduled bugfix release. 3.8.1 contained a noisy deprecation warning that was only intended for Mercurial developers, sorry. * bookmarks: properly invalidate volatile sets when writing bookmarks * builddeb: add distroseries to tagged versions * bundle2: properly request phases during getbundle * debian: add wish to suggests * debian: forgot to make debian/rules executable in 6b95a623ec90 * deprecation: gate deprecation warning behind devel configuration * help: fix the display for hg help internals.revlogs (issue5227) * help: search section of help topic by translated section name correctly * hg-ssh: copy doc string to man page * patch: show lower-ed translated message correctly * progress: stop excessive clearing (issue4801)- fix mercurial-locale-fix.patch- update to v3.8.1 (3.8.1 was released immediately after 3.8 to fix a release oversight.) Regularly scheduled feature release. This release contains a low-priority security fix for: * CVE-2016-3105 Mercurial: arbitrary code execution when converting Git repos Features * `hg update` and other commands that can perform update (such as hg pull -u) now warn about other topological heads * cHg has been added * `hg update` now updates to the tip-most changeset on the same topological branch. Before, it would update to the tip-most changeset, possibly on a different topological head * Hints on how to continue interrupted commands are now printed (e.g. `hg resolve -m` will now tell you to run `hg rebase --continue` or `hg histedit --continue`) * The experimental automv extension has been added. This extension attempts to detect file copes and renames automatically. * The 3rd party hgwatchman extension has been imported as the fsmonitor extension. This extension uses filesystem watching to make commands like `hg status` significantly faster on large repositories. * `hg rebase` now chooses its default destination the same way `hg merge` does * `hg pull -u` now activates a bookmark if the has a bookmark * `hg pull -u` now deactivates a bookmark if the destination doesn't match the existing bookmark * Improved edge styles in graph log. * User template keywords and functions can be defined in `[templatealias]` section. * It's now possible to push the active bookmark using `hg push -B .`. Improvements This release includes many improvements, including (but not limited to): * performance of copy detection during rebases has been improved, potentially leading to faster rebase execution * performance of `hg log -f ` has been improved * syntax errors in loaded extensions are now handled better * `hg update` on Windows should now be up to 4x faster * JSON encoding should now be proper UTF-8 for all inputs * Performance of the - revset operator has been improved * The blackbox extension now logs more data * "hgext" is now a Python namespace package * revsets accessing changelog data (commit messages, authors, dates) are now 10-15% faster * hg.exe built in MinGW will now link against the proper Python DLL- update to v3.7.3 This is an out of cycle release to address three security issues: * CVE-2016-3630 Mercurial: remote code execution in binary delta decoding Mercurial prior to 3.7.3 contained two bounds-checking errors in its binary delta decoder that may be exploitable via clone, push, or pull. * CVE-2016-3068 Mercurial: arbitrary code execution with Git subrepos Mercurial prior to 3.7.3 allowed URLs for Git subrepos that could result in arbitrary code execution on clone. This is a further side-effect of Git CVE-2015-7545. Reported by Blake Burkhart. * CVE-2016-3069 Mercurial: arbitrary code execution when converting Git repos Mercurial prior to 3.7.3 allowed arbitrary code execution when converting Git repos with hostile names. This could affect automated conversion services. Reported by Blake Burkhart. + bdiff: (pure) support array.array arrays (issue5130) + convert: add new, non-clowny interface for shelling out to git (SEC) + convert: dead code removal - old git calling functions (SEC) + convert: rewrite calls to Git to use the new shelling mechanism (SEC) + convert: rewrite gitpipe to use common.commandline (SEC) + convert: test for shell injection in git calls (SEC) + files: don't recurse into subrepos without a path or -S (issue5127) + hg: perform update after pulling during clone with share (issue5103) + mq: restrict generated patch name to 75 characters (issue5117) + obsolete: fix n^2 marker computation behavior + parsers: detect short records (SEC) + parsers: fix list sizing rounding error (SEC) + streamclone: fix error when store files grow while stream cloning + subrepo: adapt to git's recent renames-by-default + subrepo: set GIT_ALLOW_PROTOCOL to limit git clone protocols (SEC)- update to v3.7.2 This is a regularly-scheduled bugfix release. + bundlerepo: properly handle hidden linkrev in filelog (issue4945) + bundlerepo: properly handle hidden linkrev in manifestlog (issue4945) + demandimport: add _imp to ignore list + doc: correct example concerning "hg purge" alias in man page "hgrc.5" + doc: remove deprecated option from synopsis of command help + fileset: fix copy/paste in eol() error message + help: fix typo in backgroundclose documentation + help: hg.intevation.de is new primary name of hg.intevation.de (and new cert) + help: update template examples to use reST literal syntax + hg: obtain lock when creating share from pooled repo (issue5104) + log: fix order of revisions filtered by multiple OR options (issue5100) + rebase: update working directory when aborting (issue5084) + revert: properly revert to ancestor of p2 during merge (issue5052) + revset: flatten chained 'list' operations (aka function args) (issue5072) + setup: avoid procedure related to hg.exe at setup.py --pure + ui: fix crash by non-interactive prompt echo for user name + unionrepo: properly handle hidden linkrev in revlog (issue5070) + zeroconf: forward all arguments passed to ui.configitems() wrapper- update to 3.7.1 This addresses an urgent regression in compilation on Solaris and metadata handling for conversions. + amend: don't preserve most extra fields + graft: don't preserve most extra fields + histedit: fix typo in documentation + osutil: disable compilation of recvfds() on unsupported platforms + osutil: do not abort loading pure module just because libc has no recvmsg() + rebase: backout changeset 986d04b9fedd + rebase: backout changeset d755a9531fce + rebase: don't preserve most extra fields- update to v3.7 * Features + Generaldelta: the original Mercurial compression format had an inefficient way of storing history in very branchy repositories. Generaldelta addresses this weakness. As a result, depending on the repository, this can improve the size of the history up to a factor of 10. Mercurial 1.9 was the first release to support generaldelta (behind a feature flag), but Mercurial 3.7 also allows pulling a mixture of non-generaldelta and generaldelta history without having to recompute everything, which avoids overloading servers. As a result, generaldelta is now enabled by default. You can convert a repository to generaldelta using: `hg clone -U --config format.generaldelta=1 --pull originalrepo generaldeltarepo` + Clonebundles: this is an server-side extension. It allows using a pre-generated bundle for an initial Mercurial clone. Clients will automatically use clonebundles if a server advertises them. Clonebundles allows much faster initial clones and reduces the load on a central server significantly. Mercurial 3.6 was the first version to include experimental clonebundles support, it's now been marked non-experimental. You can find out more using: `hg help clonebundles`. + Filesets now support 'missing()', to specify all files missing according to `hg status`. + Interactive committing (`hg commit -i`) and amending (`hg commit --amend`) can now be used together. + Merging can now handle collisions between untracked and tracked files, configurable according to the config option `merge.checkunknown`. + Default 'histedit' destination: it's now possible to run `hg histedit` without specifying a base revision. Mercurial will try to determine an appropriate base automatically. The revset used for this is "`reverse(only(.) and not public() and not ::merge())`", which specifies the first ancestor of the current changeset that is not public and does not have any descendants that are merges. + The '*.orig' files created by revert can now be stored in a different location, specified by the config option `ui.origbackuppath`. + `hg shelve` now supports storing untracked files. + `hg unshelve` now supports using a custom merge tool. + `hg backout` now commits by default if no conflicts were encountered. + hgweb now supports rendering sub-topics. + Server operators can now limit interaction with legacy clients speaking an outdated wire protocol. This is useful for preventing excessive CPU use when the server is using generaldelta repositories. See the various `bundle1` options in `hg help config.server`. + Python wheel packages are now available for Windows on PyPI + `[paths]` entries can now define a separate URL for pushes. See `hg help config.paths` for more. * Improvements This release includes many improvements, including (but not limited to): + performance improvements (speedup for '`hg log `') + many documentation improvements (clarification, additional examples (see `hg help --verbose`), ...) + improved PyPy support + `hg clone --uncompressed` is now 3-4x faster on Windows. See the `backgroundclose*` options in `hg help config.worker` for more.- update to 3.6.2 This is a regularly-scheduled bugfix release. + docker: match more version of 'hg docker version' + localrepo.commit: check all files for resolve state + rebase: add returning value from pullrebase function + resolve: restore .orig only after merge is fully complete + share: wrap bmstore._writerepo for transaction sensitivity + tags: create new sortdict for performance reasons- update to 3.6.1 This is an out-of-cycle bugfix release for issues related to hooks See detailed release notes on https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_3.6.1_.282015-11-9.29- update to 3.6 Regularly-scheduled feature release. See detailed release notes on https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_3.6_.282015-11-1.29- update to 3.5.2 Regularly-scheduled bugfix release. + hgweb: use latest mtime for caching tag (issue4814) + largefiles: restore archiving largefiles with hgweb (issue4859) + localrepo: recreate phasecache if changelog was modified (issue4855) + monoblue: fix page subtitle on help pages + unbundle: cleanly abort on unknown bundle2 feature- update to 3.5.1 Regularly-scheduled bugfix release + convert: fix git copy file content conversions + filesets: ignore unit case in size() predicate for single value + help: fix typo familar -> familiar + help: fix typo in scripting documentation + hg: avoid auto sharing when the clone destination is remote + hgweb: fix trust of templates path (BC) + histedit: backout ebb5bb9bc32e + largefiles: ensure lfutil.getstandinmatcher() only matches standins + match: fix a case-only rename + explicit path commit on icasefs (issue4768) + parsers: fix memory leak in compute_phases_map_sets + rebase: lock the repo during the full rebase operation + revset: prevent crash caused by empty group expression while optimizing "and" + revset: prevent crash caused by empty group expression while optimizing "or" + strip: use the 'finally: tr.release' pattern during stripping + update: wlock the repo for the whole 'hg update' command - require python-curses (boo#944183)- update to v3.5 Regularly-scheduled feature release. See detailed release notes on https://mercurial.selenic.com/wiki/WhatsNew#Mercurial_3.5_.282015-07-31.29- update to v3.4.2 See detailed release notes on https://mercurial.selenic.com/wiki/WhatsNew#Mercurial_3.4.2_.282015-07-01.29 and https://mercurial.selenic.com/wiki/WhatsNew#Mercurial_3.4.1_.282015-06-01.29- update to 3.4 This is a regularly-scheduled feature release. See full release notes at http://mercurial.selenic.com/wiki/WhatsNew#Mercurial_3.4_.282015-05-01.29- update to 3.3.3 This is a regularly-scheduled bugfix release. + adjustlinkrev: handle 'None' value as source + adjustlinkrev: prepare source revs for ancestry only once + amend: check for directory renames for both merge parents (issue4516) + annotate: reuse ancestry context when adjusting linkrev (issue4532) + dirstate: don't require exact case when adding dirs on icasefs (issue4578) + dirstate: make sure rootdir ends with directory separator (issue4557) + filemerge: clean up language in mergemarkertemplate help + forget: cleanup the output for an inexact case match on icasefs + hgweb: prevent loading style map from directories other than specified paths + mergecopies: reuse ancestry context when traversing file history (issue4537) + templates: fix "log -q" output of default style + templates: fix "log -q" output of phases style + win32: 'raise ctypes.WinError' -> 'raise ctypes.WinError()'- Without installed python package hg is not able to clone https links, and it is not so easy to understand from error message: "python ssl support not found".- update to v3.3.2 An unscheduled bugfix release to fix the fix. + transaction: really disable hardlink backups (issue4546) - update to v3.3.1 This is a regularly scheduled bugfix release. It fixes a significant regression with transactions on Windows network shares. + dispatch: work around UnicodeDecodeError caused by SSLError of Python 2.7.9 + hgweb: recreate old DOM structure for css in monoblue style + largefiles: access to specific fields only if largefiles enabled (issue4547) + log: fix json-formatted output when file copies are listed (issue4523) + repoview: invalidate cached changelog if _delayed changes (issue4549) + revisionbranchcache: fall back to slow path if starting readonly (issue4531) + revset: mask specific names for named() predicate + shellquote: fix missing quotes for empty string + templatekw: fix {join(bookmarks, sep)} to always show associated bookmarks + transaction: disable hardlink backups (issue4546)- update to v3.3 + commands * add: add back forgotten files even when not matching exactly (BC) * addremove: add back forgotten files (BC) * addremove: add support for the -S flag * addremove: print relative paths when called with -I/-X (BC) * addremove: support addremove with explicit paths in subrepos * backout: add --commit option * commit: abort if --addremove is specified, but fails * commit: remove reverse search for copy source when not in parent (issue4476) * commit: propagate --addremove to subrepos if -S is specified (issue3759) * graft: show more useful status information while grafting + core * bundles: do not overwrite existing backup bundles (BC) * osx: patch .pax.gz files in pkg bundles so they extract as root (issue4081) * revset: handle hidden linkrev for file missing for head (issue4490) * revset: allow rev(-1) to indicate null revision (BC) * revset: fix ancestors(null) to include null revision (issue4512) * subrepo: don't abort in add when non-hg subrepos are present (issue4513) * cmdserver: use given streams as pipe channels like other commands * extensions: only check compatibility against major and minor versions (BC) * https: support tls sni (server name indication) for https urls (issue3090) * ignore: resolve ignore files relative to repo root (issue4473) (BC) * linkrev: handle filtered linkrev with no visible children (issue4307) * linkrev: also adjust linkrev when bootstrapping annotate (issue4305) * linkrev: use the right manifest content when adjusting linrev (issue4499) * memctx: calculate manifest correctly with newly-removed files (issue4470) * memctx: fix manifest for removed files (issue4470) * obsstore: disable garbage collection during initialization (issue4456) * subrepo: support remove with explicit paths in subrepos * subrepo: add full revert support for git subrepos * subrepo: add partial diff support for git subrepos * subrepo: add status support for ignored files in git subrepos * win32: remove Mercurial.ini file from Inno Setup installer (issue4435) + hgweb * hgweb: allow viewing diffs against p1 or p2 for merge commits (issue3904) + extensions * color: add support for colorizing git subrepo diffs * color: add missing 'dim' in _effects * convert: on svn failure, note libsvn version (issue4043) * convert: replace revision references in messages if they are >= short hashes * convert: handle LookupError in mercurial_source.lookuprev() * extdiff: reintroduce backward compatibility with manual quoting of parameters * histedit: add a test to show that issue4251 is fixed (issue4251) * largefiles: fix commit of a directory with no largefile changes (issue4330) * largefiles: use 'default' path for pulling largefiles, not 'default-push' * largefiles: enable subrepo support for add, forget, remove * largefiles: show progress when checking standin hashes in outgoing changesets * mq: smarter handling of plain headers * patchbomb: don't honor whitespace and format-changing diffopts (BC) * rebase: show more useful status information while rebasing * rebase: ensure rebase revision remains visible (issue4504) * extdiff: avoid unexpected quoting arguments for external tools (issue4463) * highlight: ignore Unicode's extra linebreaks (issue4291) * record: don't honor format-changing diffopts (issue4459) * share: add option to share bookmarks * transplant: properly skip empty changeset (issue4423) - provide cacerts.rc for all OS, not just >1130- update to v3.2.3 * context: stop setting None for modified or added nodes * darwin: omit ignorable codepoints when normcase()ing a file path * encoding: add hfsignoreclean to clean out HFS-ignored characters * largefiles: don't actually remove largefiles in an addremove dry run * log: fix log -f slow path to actually follow history * log: fix log revset instability * manifest: disallow setting the node id of an entry to None * pathauditor: check for Windows shortname aliases * pathauditor: check for codepoints ignored on OS X * rebase: ignore negative state when updating back to original wc parent * update: add tests for untracked local file * update: don't overwrite untracked ignored files on update- properly replaced previously dropped mercurial-2.8-ssl.diff with cacerts.rc- update to v3.2.2 * see changelog at http://mercurial.selenic.com/wiki/WhatsNew#Mercurial_3.2.2_.282014-12-01.29- update to 3.2.1 * see changelog for v3.2.1 at http://mercurial.selenic.com/wiki/WhatsNew#Mercurial_3.2.1_.282014-11-11.29 - refreshed mercurial-locale-path-fix.patch - dropped obsolete mercurial-2.8-ssl.diff - dropped outdated contrib stuff from specibs-arm-5 1684351043  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy5.9.1-150400.3.3.15.9.15.9.1-150400.3.3.15.9.1-150400.3.3.1      !!!""##$%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%''('''''%))*******))))))%%%%%%%%%%%%%%%%%++,+%%%%%%%--..-%%%%%%%%%%%%%%%%%%%%//0////////////////////112111111111111111/////////%%334444444444333333333%%%%%556666555%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%778888888777777%%%%%%%%%%%99:::::::::::9999999999%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%;;<;==>============;??@??;AABAAAAAAAAAAAAAAAAAAAAAAAAA;CCDCCC;;;;;;;;;EEFEEEEEEEEEEEEEEEEEEEEEEEEE;GGHGGGGGGGGGGGGGGGGGGGGGGGGG;IIJIIIIIIIIIIIIII;KKLKKKKKKKKKKKKK;MMNMMMMMMMMMMMMMMMMMMMMMM;OOPOOOOOOOOOOOOO%%QQRRRQQ%SSTTSUUVVVVVVVVVUUUUUUUUSSSWWXWYYZZZZZZZZZZZZZYYYYYYYYYYYYY%%%%%%%[[\\\[[%%%%]]^^^^^^^^^^^^]]]]]]]]]]]%%%%%%%%%%%%%_`aaabcdddefgghhijklllmnomercurialhgrc.dcacerts.rcchghghgkhgdemandimport__init__.py__pycache____init__.cpython-36.pycdemandimportpy2.cpython-36.pycdemandimportpy3.cpython-36.pyctracing.cpython-36.pycdemandimportpy2.pydemandimportpy3.pytracing.pyhgext__init__.py__pycache____init__.cpython-36.pycabsorb.cpython-36.pycacl.cpython-36.pycamend.cpython-36.pycautomv.cpython-36.pycbeautifygraph.cpython-36.pycblackbox.cpython-36.pycbookflow.cpython-36.pycbugzilla.cpython-36.pyccensor.cpython-36.pycchildren.cpython-36.pycchurn.cpython-36.pycclonebundles.cpython-36.pycclosehead.cpython-36.pyccommitextras.cpython-36.pyceol.cpython-36.pycextdiff.cpython-36.pycfactotum.cpython-36.pycfastexport.cpython-36.pycfetch.cpython-36.pycfix.cpython-36.pycgithelp.cpython-36.pycgpg.cpython-36.pycgraphlog.cpython-36.pychgk.cpython-36.pychistedit.cpython-36.pycjournal.cpython-36.pyckeyword.cpython-36.pyclogtoprocess.cpython-36.pycmq.cpython-36.pycnotify.cpython-36.pycpager.cpython-36.pycpatchbomb.cpython-36.pycphabricator.cpython-36.pycpurge.cpython-36.pycrebase.cpython-36.pycrecord.cpython-36.pycreleasenotes.cpython-36.pycrelink.cpython-36.pycremotenames.cpython-36.pycschemes.cpython-36.pycshare.cpython-36.pycshow.cpython-36.pycsparse.cpython-36.pycsplit.cpython-36.pycsqlitestore.cpython-36.pycstrip.cpython-36.pyctransplant.cpython-36.pycuncommit.cpython-36.pycwin32mbcs.cpython-36.pycwin32text.cpython-36.pycabsorb.pyacl.pyamend.pyautomv.pybeautifygraph.pyblackbox.pybookflow.pybugzilla.pycensor.pychildren.pychurn.pyclonebundles.pyclosehead.pycommitextras.pyconvert__init__.py__pycache____init__.cpython-36.pycbzr.cpython-36.pyccommon.cpython-36.pycconvcmd.cpython-36.pyccvs.cpython-36.pyccvsps.cpython-36.pycdarcs.cpython-36.pycfilemap.cpython-36.pycgit.cpython-36.pycgnuarch.cpython-36.pychg.cpython-36.pycmonotone.cpython-36.pycp4.cpython-36.pycsubversion.cpython-36.pyctransport.cpython-36.pycbzr.pycommon.pyconvcmd.pycvs.pycvsps.pydarcs.pyfilemap.pygit.pygnuarch.pyhg.pymonotone.pyp4.pysubversion.pytransport.pyeol.pyextdiff.pyfactotum.pyfastannotate__init__.py__pycache____init__.cpython-36.pyccommands.cpython-36.pyccontext.cpython-36.pycerror.cpython-36.pycformatter.cpython-36.pycprotocol.cpython-36.pycrevmap.cpython-36.pycsupport.cpython-36.pyccommands.pycontext.pyerror.pyformatter.pyprotocol.pyrevmap.pysupport.pyfastexport.pyfetch.pyfix.pyfsmonitor__init__.py__pycache____init__.cpython-36.pycstate.cpython-36.pycwatchmanclient.cpython-36.pycpywatchman__init__.py__pycache____init__.cpython-36.pyccapabilities.cpython-36.pyccompat.cpython-36.pycencoding.cpython-36.pycload.cpython-36.pycpybser.cpython-36.pycbser.cpython-36m-aarch64-linux-gnu.socapabilities.pycompat.pyencoding.pyload.pypybser.pystate.pywatchmanclient.pygit__init__.py__pycache____init__.cpython-36.pycdirstate.cpython-36.pycgitlog.cpython-36.pycgitutil.cpython-36.pycindex.cpython-36.pycmanifest.cpython-36.pycdirstate.pygitlog.pygitutil.pyindex.pymanifest.pygithelp.pygpg.pygraphlog.pyhgk.pyhighlight__init__.py__pycache____init__.cpython-36.pychighlight.cpython-36.pychighlight.pyhistedit.pyhooklib__init__.py__pycache____init__.cpython-36.pycchangeset_obsoleted.cpython-36.pycchangeset_published.cpython-36.pycenforce_draft_commits.cpython-36.pycreject_merge_commits.cpython-36.pycreject_new_heads.cpython-36.pycchangeset_obsoleted.pychangeset_published.pyenforce_draft_commits.pyreject_merge_commits.pyreject_new_heads.pyinfinitepush__init__.py__pycache____init__.cpython-36.pycbundleparts.cpython-36.pyccommon.cpython-36.pycfileindexapi.cpython-36.pycindexapi.cpython-36.pycsqlindexapi.cpython-36.pycstore.cpython-36.pycbundleparts.pycommon.pyfileindexapi.pyindexapi.pysqlindexapi.pystore.pyjournal.pykeyword.pylargefiles__init__.py__pycache____init__.cpython-36.pycbasestore.cpython-36.pyclfcommands.cpython-36.pyclfutil.cpython-36.pyclocalstore.cpython-36.pycoverrides.cpython-36.pycproto.cpython-36.pycremotestore.cpython-36.pycreposetup.cpython-36.pycstorefactory.cpython-36.pycwirestore.cpython-36.pycbasestore.pylfcommands.pylfutil.pylocalstore.pyoverrides.pyproto.pyremotestore.pyreposetup.pystorefactory.pywirestore.pylfs__init__.py__pycache____init__.cpython-36.pycblobstore.cpython-36.pycpointer.cpython-36.pycwireprotolfsserver.cpython-36.pycwrapper.cpython-36.pycblobstore.pypointer.pywireprotolfsserver.pywrapper.pylogtoprocess.pymq.pynarrow__init__.py__pycache____init__.cpython-36.pycnarrowbundle2.cpython-36.pycnarrowcommands.cpython-36.pycnarrowdirstate.cpython-36.pycnarrowrepo.cpython-36.pycnarrowtemplates.cpython-36.pycnarrowwirepeer.cpython-36.pycnarrowbundle2.pynarrowcommands.pynarrowdirstate.pynarrowrepo.pynarrowtemplates.pynarrowwirepeer.pynotify.pypager.pypatchbomb.pyphabricator.pypurge.pyrebase.pyrecord.pyreleasenotes.pyrelink.pyremotefilelog__init__.py__pycache____init__.cpython-36.pycbasepack.cpython-36.pycbasestore.cpython-36.pycconnectionpool.cpython-36.pycconstants.cpython-36.pyccontentstore.cpython-36.pycdatapack.cpython-36.pycdebugcommands.cpython-36.pycfileserverclient.cpython-36.pychistorypack.cpython-36.pycmetadatastore.cpython-36.pycremotefilectx.cpython-36.pycremotefilelog.cpython-36.pycremotefilelogserver.cpython-36.pycrepack.cpython-36.pycshallowbundle.cpython-36.pycshallowrepo.cpython-36.pycshallowstore.cpython-36.pycshallowutil.cpython-36.pycshallowverifier.cpython-36.pycbasepack.pybasestore.pyconnectionpool.pyconstants.pycontentstore.pydatapack.pydebugcommands.pyfileserverclient.pyhistorypack.pymetadatastore.pyremotefilectx.pyremotefilelog.pyremotefilelogserver.pyrepack.pyshallowbundle.pyshallowrepo.pyshallowstore.pyshallowutil.pyshallowverifier.pyremotenames.pyschemes.pyshare.pyshow.pysparse.pysplit.pysqlitestore.pystrip.pytransplant.pyuncommit.pywin32mbcs.pywin32text.pyzeroconfZeroconf.py__init__.py__pycache__Zeroconf.cpython-36.pyc__init__.cpython-36.pychgext3rd__init__.py__pycache____init__.cpython-36.pycmercurialmercurial-5.9.1-py3.6.egg-info__init__.py__modulepolicy__.py__pycache____init__.cpython-36.pyc__modulepolicy__.cpython-36.pyc__version__.cpython-36.pycancestor.cpython-36.pycarchival.cpython-36.pycbookmarks.cpython-36.pycbranchmap.cpython-36.pycbundle2.cpython-36.pycbundlecaches.cpython-36.pycbundlerepo.cpython-36.pyccacheutil.cpython-36.pycchangegroup.cpython-36.pycchangelog.cpython-36.pycchgserver.cpython-36.pyccmdutil.cpython-36.pyccolor.cpython-36.pyccommands.cpython-36.pyccommandserver.cpython-36.pyccommit.cpython-36.pycconfig.cpython-36.pycconfigitems.cpython-36.pyccontext.cpython-36.pyccopies.cpython-36.pyccrecord.cpython-36.pycdagop.cpython-36.pycdagparser.cpython-36.pycdebugcommands.cpython-36.pycdestutil.cpython-36.pycdiffhelper.cpython-36.pycdiffutil.cpython-36.pycdirstate.cpython-36.pycdirstateguard.cpython-36.pycdirstatemap.cpython-36.pycdiscovery.cpython-36.pycdispatch.cpython-36.pycencoding.cpython-36.pycerror.cpython-36.pycexchange.cpython-36.pycexchangev2.cpython-36.pycextensions.cpython-36.pycexthelper.cpython-36.pycfancyopts.cpython-36.pycfilelog.cpython-36.pycfilemerge.cpython-36.pycfileset.cpython-36.pycfilesetlang.cpython-36.pycformatter.cpython-36.pycgraphmod.cpython-36.pycgrep.cpython-36.pychbisect.cpython-36.pychelp.cpython-36.pychg.cpython-36.pychook.cpython-36.pychttpconnection.cpython-36.pychttppeer.cpython-36.pyci18n.cpython-36.pyckeepalive.cpython-36.pyclinelog.cpython-36.pyclocalrepo.cpython-36.pyclock.cpython-36.pyclogcmdutil.cpython-36.pyclogexchange.cpython-36.pycloggingutil.cpython-36.pyclsprof.cpython-36.pyclsprofcalltree.cpython-36.pycmail.cpython-36.pycmanifest.cpython-36.pycmatch.cpython-36.pycmdiff.cpython-36.pycmerge.cpython-36.pycmergestate.cpython-36.pycmergeutil.cpython-36.pycmetadata.cpython-36.pycminifileset.cpython-36.pycminirst.cpython-36.pycnamespaces.cpython-36.pycnarrowspec.cpython-36.pycnode.cpython-36.pycobsolete.cpython-36.pycobsutil.cpython-36.pycparser.cpython-36.pycpatch.cpython-36.pycpathutil.cpython-36.pycphases.cpython-36.pycpolicy.cpython-36.pycposix.cpython-36.pycprofiling.cpython-36.pycprogress.cpython-36.pycpushkey.cpython-36.pycpvec.cpython-36.pycpycompat.cpython-36.pycrcutil.cpython-36.pycregistrar.cpython-36.pycrepair.cpython-36.pycrepocache.cpython-36.pycrepoview.cpython-36.pycrequirements.cpython-36.pycrevlog.cpython-36.pycrevset.cpython-36.pycrevsetlang.cpython-36.pycrewriteutil.cpython-36.pycscmposix.cpython-36.pycscmutil.cpython-36.pycscmwindows.cpython-36.pycserver.cpython-36.pycsetdiscovery.cpython-36.pycshelve.cpython-36.pycsimilar.cpython-36.pycsimplemerge.cpython-36.pycsmartset.cpython-36.pycsparse.cpython-36.pycsshpeer.cpython-36.pycsslutil.cpython-36.pycstack.cpython-36.pycstate.cpython-36.pycstatichttprepo.cpython-36.pycstatprof.cpython-36.pycstore.cpython-36.pycstreamclone.cpython-36.pycstrip.cpython-36.pycsubrepo.cpython-36.pycsubrepoutil.cpython-36.pyctagmerge.cpython-36.pyctags.cpython-36.pyctemplatefilters.cpython-36.pyctemplatefuncs.cpython-36.pyctemplatekw.cpython-36.pyctemplater.cpython-36.pyctemplateutil.cpython-36.pyctransaction.cpython-36.pyctreediscovery.cpython-36.pyctxnutil.cpython-36.pycui.cpython-36.pycunionrepo.cpython-36.pycupgrade.cpython-36.pycurl.cpython-36.pycurllibcompat.cpython-36.pycutil.cpython-36.pycverify.cpython-36.pycvfs.cpython-36.pycwin32.cpython-36.pycwindows.cpython-36.pycwireprotoframing.cpython-36.pycwireprotoserver.cpython-36.pycwireprototypes.cpython-36.pycwireprotov1peer.cpython-36.pycwireprotov1server.cpython-36.pycwireprotov2peer.cpython-36.pycwireprotov2server.cpython-36.pycworker.cpython-36.pyc__version__.pyancestor.pyarchival.pybookmarks.pybranchmap.pybundle2.pybundlecaches.pybundlerepo.pycacheutil.pycext__init__.py__pycache____init__.cpython-36.pycbase85.cpython-36m-aarch64-linux-gnu.sobdiff.cpython-36m-aarch64-linux-gnu.sompatch.cpython-36m-aarch64-linux-gnu.soosutil.cpython-36m-aarch64-linux-gnu.soparsers.cpython-36m-aarch64-linux-gnu.socffi__init__.py__pycache____init__.cpython-36.pycbdiff.cpython-36.pycbdiffbuild.cpython-36.pycmpatch.cpython-36.pycmpatchbuild.cpython-36.pycosutil.cpython-36.pycosutilbuild.cpython-36.pycbdiff.pybdiffbuild.pympatch.pympatchbuild.pyosutil.pyosutilbuild.pychangegroup.pychangelog.pychgserver.pycmdutil.pycolor.pycommands.pycommandserver.pycommit.pyconfig.pyconfigitems.pycontext.pycopies.pycrecord.pydagop.pydagparser.pydebugcommands.pydefaultrc__init__.py__pycache____init__.cpython-36.pycmergetools.rcdestutil.pydiffhelper.pydiffutil.pydirstate.pydirstateguard.pydirstatemap.pydirstateutils__init__.py__pycache____init__.cpython-36.pycdocket.cpython-36.pycdocket.pydiscovery.pydispatch.pydummycert.pemencoding.pyerror.pyexchange.pyexchangev2.pyextensions.pyexthelper.pyfancyopts.pyfilelog.pyfilemerge.pyfileset.pyfilesetlang.pyformatter.pygraphmod.pygrep.pyhbisect.pyhelp.pyhelptext__init__.py__pycache____init__.cpython-36.pycbundlespec.txtcolor.txtcommon.txtconfig.txtdates.txtdeprecated.txtdiffs.txtenvironment.txtevolution.txtextensions.txtfilesets.txtflags.txtglossary.txthg-ssh.8.txthg.1.txthgignore.5.txthgignore.txthgrc.5.txthgweb.txtinternals__init__.py__pycache____init__.cpython-36.pycbid-merge.txtbundle2.txtbundles.txtcbor.txtcensor.txtchangegroups.txtconfig.txtextensions.txtlinelog.txtmergestate.txtrequirements.txtrevlogs.txtwireprotocol.txtwireprotocolrpc.txtwireprotocolv2.txtmerge-tools.txtpager.txtpatterns.txtphases.txtrevisions.txtscripting.txtsubrepos.txttemplates.txturls.txthg.pyhgweb__init__.py__pycache____init__.cpython-36.pyccommon.cpython-36.pychgweb_mod.cpython-36.pychgwebdir_mod.cpython-36.pycrequest.cpython-36.pycserver.cpython-36.pycwebcommands.cpython-36.pycwebutil.cpython-36.pycwsgicgi.cpython-36.pycwsgiheaders.cpython-36.pyccommon.pyhgweb_mod.pyhgwebdir_mod.pyrequest.pyserver.pywebcommands.pywebutil.pywsgicgi.pywsgiheaders.pyhook.pyhttpconnection.pyhttppeer.pyi18n.pyinterfaces__init__.py__pycache____init__.cpython-36.pycdirstate.cpython-36.pycrepository.cpython-36.pycutil.cpython-36.pycdirstate.pyrepository.pyutil.pykeepalive.pylinelog.pylocalelocalrepo.pylock.pylogcmdutil.pylogexchange.pyloggingutil.pylsprof.pylsprofcalltree.pymail.pymanifest.pymatch.pymdiff.pymerge.pymergestate.pymergeutil.pymetadata.pyminifileset.pyminirst.pynamespaces.pynarrowspec.pynode.pyobsolete.pyobsutil.pyparser.pypatch.pypathutil.pyphases.pypolicy.pyposix.pyprofiling.pyprogress.pypure__init__.py__pycache____init__.cpython-36.pycbase85.cpython-36.pycbdiff.cpython-36.pyccharencode.cpython-36.pycmpatch.cpython-36.pycosutil.cpython-36.pycparsers.cpython-36.pycbase85.pybdiff.pycharencode.pympatch.pyosutil.pyparsers.pypushkey.pypvec.pypycompat.pyrcutil.pyregistrar.pyrepair.pyrepocache.pyrepoview.pyrequirements.pyrevlog.pyrevlogutils__init__.py__pycache____init__.cpython-36.pycconcurrency_checker.cpython-36.pycconstants.cpython-36.pycdeltas.cpython-36.pycdocket.cpython-36.pycflagutil.cpython-36.pycnodemap.cpython-36.pycrandomaccessfile.cpython-36.pycrevlogv0.cpython-36.pycrewrite.cpython-36.pycsidedata.cpython-36.pycconcurrency_checker.pyconstants.pydeltas.pydocket.pyflagutil.pynodemap.pyrandomaccessfile.pyrevlogv0.pyrewrite.pysidedata.pyrevset.pyrevsetlang.pyrewriteutil.pyscmposix.pyscmutil.pyscmwindows.pyserver.pysetdiscovery.pyshelve.pysimilar.pysimplemerge.pysmartset.pysparse.pysshpeer.pysslutil.pystack.pystate.pystatichttprepo.pystatprof.pystore.pystreamclone.pystrip.pysubrepo.pysubrepoutil.pytagmerge.pytags.pytemplatefilters.pytemplatefuncs.pytemplatekw.pytemplater.pytemplates__init__.py__pycache____init__.cpython-36.pycatom__init__.py__pycache____init__.cpython-36.pycbookmarkentry.tmplbookmarks.tmplbranchentry.tmplbranches.tmplchangelog.tmplchangelogentry.tmplerror.tmplfilelog.tmplheader.tmplmaptagentry.tmpltags.tmplcoal__init__.py__pycache____init__.cpython-36.pycheader.tmplmapgitweb__init__.py__pycache____init__.cpython-36.pycbookmarks.tmplbranches.tmplchangelog.tmplchangelogentry.tmplchangeset.tmplerror.tmplfileannotate.tmplfilecomparison.tmplfilediff.tmplfilelog.tmplfilerevision.tmplfooter.tmplgraph.tmplgraphentry.tmplheader.tmplhelp.tmplhelptopics.tmplindex.tmplmanifest.tmplmapnotfound.tmplsearch.tmplshortlog.tmplsummary.tmpltags.tmpljson__init__.py__pycache____init__.cpython-36.pycchangelist.tmplgraph.tmplmapmap-cmdline.bisectmap-cmdline.changelogmap-cmdline.compactmap-cmdline.defaultmap-cmdline.phasesmap-cmdline.showmap-cmdline.statusmap-cmdline.xmlmonoblue__init__.py__pycache____init__.cpython-36.pycbookmarks.tmplbranches.tmplchangelog.tmplchangelogentry.tmplchangeset.tmplerror.tmplfileannotate.tmplfilecomparison.tmplfilediff.tmplfilelog.tmplfilerevision.tmplfooter.tmplgraph.tmplgraphentry.tmplheader.tmplhelp.tmplhelptopics.tmplindex.tmplmanifest.tmplmapnotfound.tmplsearch.tmplshortlog.tmplsummary.tmpltags.tmplpaper__init__.py__pycache____init__.cpython-36.pycbookmarks.tmplbranches.tmplchangeset.tmpldiffstat.tmplerror.tmplfileannotate.tmplfilecomparison.tmplfilediff.tmplfilelog.tmplfilelogentry.tmplfilerevision.tmplfooter.tmplgraph.tmplgraphentry.tmplheader.tmplhelp.tmplhelptopics.tmplindex.tmplmanifest.tmplmapnotfound.tmplsearch.tmplshortlog.tmplshortlogentry.tmpltags.tmplraw__init__.py__pycache____init__.cpython-36.pycchangelog.tmplchangeset.tmplerror.tmplfileannotate.tmplfilediff.tmplgraph.tmplgraphedge.tmplgraphnode.tmplindex.tmpllogentry.tmplmanifest.tmplmapnotfound.tmplsearch.tmplrss__init__.py__pycache____init__.cpython-36.pycbookmarkentry.tmplbookmarks.tmplbranchentry.tmplbranches.tmplchangelog.tmplchangelogentry.tmplerror.tmplfilelog.tmplfilelogentry.tmplheader.tmplmaptagentry.tmpltags.tmplspartan__init__.py__pycache____init__.cpython-36.pycbranches.tmplchangelog.tmplchangelogentry.tmplchangeset.tmplerror.tmplfileannotate.tmplfilediff.tmplfilelog.tmplfilelogentry.tmplfilerevision.tmplfooter.tmplgraph.tmplgraphentry.tmplheader.tmplindex.tmplmanifest.tmplmapnotfound.tmplsearch.tmplshortlog.tmplshortlogentry.tmpltags.tmplstatic__init__.py__pycache____init__.cpython-36.pycbackground.pngcoal-file.pngcoal-folder.pngfeed-icon-14x14.pngfollowlines.jshgicon.pnghglogo.pngmercurial.jsstyle-extra-coal.cssstyle-gitweb.cssstyle-monoblue.cssstyle-paper.cssstyle.csstemplateutil.pytesting__init__.py__pycache____init__.cpython-36.pycrevlog.cpython-36.pycstorage.cpython-36.pycrevlog.pystorage.pythirdparty__init__.py__pycache____init__.cpython-36.pycselectors2.cpython-36.pycattr__init__.py__pycache____init__.cpython-36.pyc_compat.cpython-36.pyc_config.cpython-36.pyc_funcs.cpython-36.pyc_make.cpython-36.pycconverters.cpython-36.pycexceptions.cpython-36.pycfilters.cpython-36.pycvalidators.cpython-36.pyc_compat.py_config.py_funcs.py_make.pyconverters.pyexceptions.pyfilters.pyvalidators.pyselectors2.pysha1dc.cpython-36m-aarch64-linux-gnu.sozope__init__.py__pycache____init__.cpython-36.pycinterface__init__.py__pycache____init__.cpython-36.pyc_compat.cpython-36.pyc_flatten.cpython-36.pycadapter.cpython-36.pycadvice.cpython-36.pycdeclarations.cpython-36.pycdocument.cpython-36.pycexceptions.cpython-36.pycinterface.cpython-36.pycinterfaces.cpython-36.pycregistry.cpython-36.pycro.cpython-36.pycverify.cpython-36.pyc_compat.py_flatten.py_zope_interface_coptimizations.cpython-36m-aarch64-linux-gnu.soadapter.pyadvice.pydeclarations.pydocument.pyexceptions.pyinterface.pyinterfaces.pyregistry.pyro.pyverify.pytransaction.pytreediscovery.pytxnutil.pyui.pyunionrepo.pyupgrade.pyupgrade_utils__init__.py__pycache____init__.cpython-36.pycactions.cpython-36.pycengine.cpython-36.pycactions.pyengine.pyurl.pyurllibcompat.pyutil.pyutils__init__.py__pycache____init__.cpython-36.pyccborutil.cpython-36.pyccompression.cpython-36.pycdateutil.cpython-36.pychashutil.cpython-36.pycmemorytop.cpython-36.pycprocutil.cpython-36.pycrepoviewutil.cpython-36.pycresourceutil.cpython-36.pycstorageutil.cpython-36.pycstringutil.cpython-36.pycurlutil.cpython-36.pyccborutil.pycompression.pydateutil.pyhashutil.pymemorytop.pyprocutil.pyrepoviewutil.pyresourceutil.pystorageutil.pystringutil.pyurlutil.pyverify.pyvfs.pywin32.pywindows.pywireprotoframing.pywireprotoserver.pywireprototypes.pywireprotov1peer.pywireprotov1server.pywireprotov2peer.pywireprotov2server.pyworker.pyzstd.cpython-36m-aarch64-linux-gnu.sohgmercurialCONTRIBUTORSREADME.rsthgweb.cgiemacssite-lisphg-test-mode.elmercurial.elmq.elmercurialCOPYINGchg.1.gzhg.1.gzhgignore.5.gzhgrc.5.gzhg-ssh.8.gzxemacssite-lisphg-test-mode.elmercurial.elmq.elzshsite-functions_mercurial/etc//etc/mercurial//etc/mercurial/hgrc.d//usr/bin//usr/lib64/python3.6/site-packages//usr/lib64/python3.6/site-packages/hgdemandimport//usr/lib64/python3.6/site-packages/hgdemandimport/__pycache__//usr/lib64/python3.6/site-packages/hgext//usr/lib64/python3.6/site-packages/hgext/__pycache__//usr/lib64/python3.6/site-packages/hgext/convert//usr/lib64/python3.6/site-packages/hgext/convert/__pycache__//usr/lib64/python3.6/site-packages/hgext/fastannotate//usr/lib64/python3.6/site-packages/hgext/fastannotate/__pycache__//usr/lib64/python3.6/site-packages/hgext/fsmonitor//usr/lib64/python3.6/site-packages/hgext/fsmonitor/__pycache__//usr/lib64/python3.6/site-packages/hgext/fsmonitor/pywatchman//usr/lib64/python3.6/site-packages/hgext/fsmonitor/pywatchman/__pycache__//usr/lib64/python3.6/site-packages/hgext/git//usr/lib64/python3.6/site-packages/hgext/git/__pycache__//usr/lib64/python3.6/site-packages/hgext/highlight//usr/lib64/python3.6/site-packages/hgext/highlight/__pycache__//usr/lib64/python3.6/site-packages/hgext/hooklib//usr/lib64/python3.6/site-packages/hgext/hooklib/__pycache__//usr/lib64/python3.6/site-packages/hgext/infinitepush//usr/lib64/python3.6/site-packages/hgext/infinitepush/__pycache__//usr/lib64/python3.6/site-packages/hgext/largefiles//usr/lib64/python3.6/site-packages/hgext/largefiles/__pycache__//usr/lib64/python3.6/site-packages/hgext/lfs//usr/lib64/python3.6/site-packages/hgext/lfs/__pycache__//usr/lib64/python3.6/site-packages/hgext/narrow//usr/lib64/python3.6/site-packages/hgext/narrow/__pycache__//usr/lib64/python3.6/site-packages/hgext/remotefilelog//usr/lib64/python3.6/site-packages/hgext/remotefilelog/__pycache__//usr/lib64/python3.6/site-packages/hgext/zeroconf//usr/lib64/python3.6/site-packages/hgext/zeroconf/__pycache__//usr/lib64/python3.6/site-packages/hgext3rd//usr/lib64/python3.6/site-packages/hgext3rd/__pycache__//usr/lib64/python3.6/site-packages/mercurial//usr/lib64/python3.6/site-packages/mercurial/__pycache__//usr/lib64/python3.6/site-packages/mercurial/cext//usr/lib64/python3.6/site-packages/mercurial/cext/__pycache__//usr/lib64/python3.6/site-packages/mercurial/cffi//usr/lib64/python3.6/site-packages/mercurial/cffi/__pycache__//usr/lib64/python3.6/site-packages/mercurial/defaultrc//usr/lib64/python3.6/site-packages/mercurial/defaultrc/__pycache__//usr/lib64/python3.6/site-packages/mercurial/dirstateutils//usr/lib64/python3.6/site-packages/mercurial/dirstateutils/__pycache__//usr/lib64/python3.6/site-packages/mercurial/helptext//usr/lib64/python3.6/site-packages/mercurial/helptext/__pycache__//usr/lib64/python3.6/site-packages/mercurial/helptext/internals//usr/lib64/python3.6/site-packages/mercurial/helptext/internals/__pycache__//usr/lib64/python3.6/site-packages/mercurial/hgweb//usr/lib64/python3.6/site-packages/mercurial/hgweb/__pycache__//usr/lib64/python3.6/site-packages/mercurial/interfaces//usr/lib64/python3.6/site-packages/mercurial/interfaces/__pycache__//usr/lib64/python3.6/site-packages/mercurial/pure//usr/lib64/python3.6/site-packages/mercurial/pure/__pycache__//usr/lib64/python3.6/site-packages/mercurial/revlogutils//usr/lib64/python3.6/site-packages/mercurial/revlogutils/__pycache__//usr/lib64/python3.6/site-packages/mercurial/templates//usr/lib64/python3.6/site-packages/mercurial/templates/__pycache__//usr/lib64/python3.6/site-packages/mercurial/templates/atom//usr/lib64/python3.6/site-packages/mercurial/templates/atom/__pycache__//usr/lib64/python3.6/site-packages/mercurial/templates/coal//usr/lib64/python3.6/site-packages/mercurial/templates/coal/__pycache__//usr/lib64/python3.6/site-packages/mercurial/templates/gitweb//usr/lib64/python3.6/site-packages/mercurial/templates/gitweb/__pycache__//usr/lib64/python3.6/site-packages/mercurial/templates/json//usr/lib64/python3.6/site-packages/mercurial/templates/json/__pycache__//usr/lib64/python3.6/site-packages/mercurial/templates/monoblue//usr/lib64/python3.6/site-packages/mercurial/templates/monoblue/__pycache__//usr/lib64/python3.6/site-packages/mercurial/templates/paper//usr/lib64/python3.6/site-packages/mercurial/templates/paper/__pycache__//usr/lib64/python3.6/site-packages/mercurial/templates/raw//usr/lib64/python3.6/site-packages/mercurial/templates/raw/__pycache__//usr/lib64/python3.6/site-packages/mercurial/templates/rss//usr/lib64/python3.6/site-packages/mercurial/templates/rss/__pycache__//usr/lib64/python3.6/site-packages/mercurial/templates/spartan//usr/lib64/python3.6/site-packages/mercurial/templates/spartan/__pycache__//usr/lib64/python3.6/site-packages/mercurial/templates/static//usr/lib64/python3.6/site-packages/mercurial/templates/static/__pycache__//usr/lib64/python3.6/site-packages/mercurial/testing//usr/lib64/python3.6/site-packages/mercurial/testing/__pycache__//usr/lib64/python3.6/site-packages/mercurial/thirdparty//usr/lib64/python3.6/site-packages/mercurial/thirdparty/__pycache__//usr/lib64/python3.6/site-packages/mercurial/thirdparty/attr//usr/lib64/python3.6/site-packages/mercurial/thirdparty/attr/__pycache__//usr/lib64/python3.6/site-packages/mercurial/thirdparty/zope//usr/lib64/python3.6/site-packages/mercurial/thirdparty/zope/__pycache__//usr/lib64/python3.6/site-packages/mercurial/thirdparty/zope/interface//usr/lib64/python3.6/site-packages/mercurial/thirdparty/zope/interface/__pycache__//usr/lib64/python3.6/site-packages/mercurial/upgrade_utils//usr/lib64/python3.6/site-packages/mercurial/upgrade_utils/__pycache__//usr/lib64/python3.6/site-packages/mercurial/utils//usr/lib64/python3.6/site-packages/mercurial/utils/__pycache__//usr/share/bash-completion/completions//usr/share/doc/packages//usr/share/doc/packages/mercurial//usr/share//usr/share/emacs//usr/share/emacs/site-lisp//usr/share/licenses//usr/share/licenses/mercurial//usr/share/man/man1//usr/share/man/man5//usr/share/man/man8//usr/share//usr/share/xemacs//usr/share/xemacs/site-lisp//usr/share//usr/share/zsh//usr/share/zsh/site-functions/-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:29030/SUSE_SLE-15-SP4_Update/21bfaf20fddfef40292f98601bbf6481-mercurial.SUSE_SLE-15-SP4_Updatedrpmxz5aarch64-suse-linux directoryASCII textELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=b37d63f3ce6cc1e5c73cd6d676d919fb53e007ac, for GNU/Linux 3.7.0, strippedPython script, ASCII text executablea /usr/bin/wish script, ISO-8859 text executablepython 3.6 byte-compiledPython script, UTF-8 Unicode text executableELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=b595e5c3c527a98774faab3e18222571cda3e00e, strippedemptyELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=aed519905d721891415daae14eaf6a6f9ea145b2, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=51c26499356b7d29f85e3688e7434a4a434e88a4, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=eae19d4998a92c962fbb996c9b5155f777cfa512, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=b253f9c50a02d69ca80597437f07255abea88ce9, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=eeac984d461db095a30c248e9ee7c6ae59fa20c0, strippedC++ source, ASCII textHTML document, ASCII textXML 1.0 document, ASCII textHTML document, ASCII text, with very long linesASCII text, with very long linesPNG image data, 5 x 800, 8-bit grayscale, non-interlacedPNG image data, 14 x 14, 8-bit/color RGBA, non-interlacedUTF-8 Unicode textPNG image data, 16 x 16, 8-bit colormap, non-interlacedPNG image data, 75 x 90, 8-bit/color RGB, non-interlacedassembler source, ASCII textELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=4fcfc84da46cd7724f46b33df9cd57ec84bace28, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=4f785e15d7a912443dfc64a3377e75f8ac291966, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=e7335947f6e444958d82120dfebe978e5d44df5e, strippedLisp/Scheme program, ASCII texttroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeRRRRR R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R RRR RRRR R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R RRR RRRR RRR RRRR RRR RRRR RR RR RRRR RRR RRRR R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R RRR RRRR R R R R R R R R R R R R R R R R R R RRR RRRR R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R RR RR RRRE6i&J0b1˫2mercurial-langutf-8ebfa942bb123db876d143840370c4808074bb2b46b25a0d4d11478fd9c795731?7zXZ !t//6]"k%w˟jL\@J/YV.#O +k=zz[/~+AR]i|cxh3>r8+*$qw<UzrGr|H]-f1j1& Z hW}d4mMo46)ūRI}~oD&dvL+4rTP)'ƽ`(Ca#r Y7ޛAH6'bK0h但,lPF"d_PKz#k *Fu@u߂] @2,yCB'y'kLR^{^(ȳQ,bя$~ =#XcRq_F]-]2녒/1V/(gGx@ ˥:;l-ZXt&(+̤!%F5Ǭ ۱{|CDA{+E\\RͲ7trZ䁱r&PeQ=̳d^R>(Ի-g'P^pRAofvN(/'tIYUr.=)faԠ7:.Uac87>S f*t:U%wnE+4 '\F AN=CUNc0 ٚ_~#1K4MPXLpQm"_vW!s#eXM,JڅЭGC6*$Խ͂8 $V,凾ZFzt4 Ʒah PX&QkSh;c bG8{haw${R7,sr1#+"ޕgP e `"z͖:=4 LFdkeVG&U8Eˢ餔~0.:\k;'/l򾚅qvrF I)jwxj(D{ۢTU4٠f;[@c84!BhWp>ξ/Ue@`^>IzkkT:Dnq[jMwK>XiRuF:P0ɓ Tq݀M]1Ep;xk,E "r=O1QZs)co=޺ 3:EsG#c]S\}tW\CkJG1BcU.եrk,rήB,T$+g<>oti6=,UTpgjeQ`*`6SvUP5LTוsSHe[w2F1{l9jnIbKeZ՞ ;wYa9*(mIrUnone\vS]iPGf]63.]'AuWbЯꝆÐSaCsvrA$ !_t'0M1 QhE,@P'3d)aJ븮 ӓ{ #Ak5t6p<3CCIk)?[]Br 4Y#wgF\Йh׿XosZ ''ɿ>#CӅi@W2ucT-nHj"1We+F!e@ӿ6ᏙUӧ=5v>/WT*S: 0";W%WZe.Ӳwzsͅ:0HYlIU܊m`V"A 2"XncpSM9.@u&\y/a Xm4ta -'}بĘ֢V{i߾x8cĜs8uq"#XE Ss$w_Us\}C'R,"b(I#|(.F_w01qWCw9/0'g?LD{ic H NG;{ʚO]z;}~Dĥ`_^>ˁ;qqX;,rc@>el֤uoHC&PO<)?Zx_9|^THL#>)s2?{/w v]S{"` vv5/&Աʊ'nY'tk=Jۙtbu~w[Z (aT!hC Ei\X s ]IiF=md]6CcGx ӍxVusԮBqE H] l0>2nރ0s̀%ڕIÍobT}\$>+&hlD WsU'1;`sZ?m!b[˚66<5HJV*f /4р3-a CTȸ蟺iLB:ř@<}.R@uTXE06xrHx2͇n=]hـuZU5}T214Luc)ĭVQA\}3_'YYgMc25N(k=)?̩f%0 ߗ-kxyA쫉\1?w gL7hއ*j'0ه}/I+pL]uLHV4ɋ~ kp E1@67^Gq=梾+#/V-Z>i[%M`LXs(7NpH3FJ0iH&a_2.Z /w- Rw'.;΋S?E2,F /u‚e`0 Cjk}G kHD%+Xq ejWǦ?ӏKΊG xS;]gD9`|^SE y2;[5&p"i:Ai(xj4aŁ+[?պs9h޷KxdNUc3ErshtC>fIJ- ΘT]IcHdL"hFȤ AXBLW|)ܩڬIl3Qq3nPbbW`M,ߗ͋#jU~̙s _N "Ik eh!n!]EHHE~1nTFXVv*hhBtyXZߓ`g"=h8`jS^nֵM= ?(Cy(8 z}8/d\>Yc }~bT|2h)4=cW.y[vшVB >F 8 ecoVƹj?k .22ٞ{gE{@|yĉ)Xn8C+/Cxng~HI GD`},bg{syP")&eS[2#ꨡ5`8MExRSקSf87]q 04 μ99(/N1ɷ| K~ƾ+-#v\rF]PHCUη"H>gtux1Xgz$V-,saO!q+m(Y\20xㄙC(&wU0JD£+Nwܨ/K;(K⿋mס(EhX_⁑bb{hAH& unYN"-޸I1&;%_ ZR5Uӯcnyڧ@D1GlRk*U1iF`llçYe/3(A6`uPGЇ: վ~T$buM+C+_ O\g$aצ:šXCi:ǣ9oq#wtKH;W^Q[ƾ]z?PWND]"^`(2]# "˚ 8F +MGki :P&C52GaޠY]P{ȝR*`PPF*}G a=xu~!:4SsMp3)Q3W9w!⒔\do+QQ H ̩Î'|=+/|fռLb>a 3 `b79S6qB5F!N)m }$(Kޭ= *q-" * \Уb\C7<Β#,sY~UϼB$%6(?5KXow#sq!m}o=Z7$2UBu98-xTѭXmu_UZPy@;7FǺz@jp@}BY)ʾD} i.hTJ[9|hۢ{<_VGr YZ