borgbackup-doc-1.1.17-bp154.1.20 >  A bxu!M@eeeRpEJ C릠]mk4=hZȯB;+#C%Ġ{Sn*}DZ^8v}7@H6c.zS@^?eyQ6.ѳNlb&\ S 1R -¸F4"2fYDa ڕ̏ kfj>1,SUSg7.St3%+t8$!ݷpp&hK_+e2{iP+hWEۙK\DnD44%V/>nB5_28;50!Z# Bкv_?SbʰgAgs2yO1AhBhŸZn bljs֑i>p;L?<d # F (   H   @ AEpINXNRR8RHR(R8R19S1:X.1FEGEHIIMXMYN\N(]Q^bbhciEdieifiliuivm`;z8Cborgbackup-doc1.1.17bp154.1.20Documentation files for borgbackupBorgBackup is a deduplicating backup program which stores deltas. It supports compression and authenticated encryption as well, facilitating frequent backups and storing to not fully trusted targets. Run borg for a commands overview and check out the docs at /usr/share/doc/packages/borgbackup/html/index.html.bxobs-arm-2kSUSE Linux Enterprise 15 SP4openSUSEBSD-3-Clausehttps://bugs.opensuse.orgDocumentation/HTMLhttps://github.com/borgbackup/borglinuxaarch64 2 W[I!{# R6.0i^9E@(eJ`U+ $& 6C:A @..8X/4)4$6JOBZx9wMLvNUwgvNU@4WtbsK@Wtt0LvuM2\TW<fdPjX^xe dk92. LHXh< }G{G,i!q*_iZZ+>`/l9 fe6!.XdPz3=gt"=0.^?^ #&C'W4{5QD4d/}< =n?ٟ~?HErN3V}=_U,lK=I"AAA큤A큤A큤A큤A큤A큤A큤A큤AA큤AA큤A큤A큤AA큤A큤A큤A큤A큤A큤bxbxbx`웢`웢`웢`웢bx`웢`웢`웢bx`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢bx`웢`웢`웢`웢`웢`웢`웢`웢`웢bx`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢`웢bxbxbxUϕUϕ`웢]5bx`웢]5bxS$S$S$S$bxbxUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUibxbxbxUiUiUiUiUiUibxbxUiUiUiUiUiUiUiUiUibxUiUiUiUiUiUibxbxUiUiUiUiUiUibxUiUiUiUiUiUiUiUibx]&UϕUϕbxS$Uϕbx`웢]5]5bx].O]5]3bxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbx`웢bxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbx6d5e39268d9c5f3af4cf421d142fc8b69098d691f14100fba3237f17ee3bdde8532cdf491f7cff3bf6526ca9836f27bded569856fbfefbfb6371b1affc78a565a6e50829e12ccf816c04ff92678121391a9389fad66fb9551d59783b19144da408da4fa8e98829bfe2bda565be043923a7ba4df2666a7a1e2a7ebf639bbd0c18dc210cea7725dbac01377eb9242db62ebc007d0ba4d228d2c3826aeaf77e319c2bb526b6077ff43390b99b0c272ec75c19aae2c1635c887a3f085dae8e717bb0604748b6527a877325e2d2d5696a31dfcea4092464c1c765feac21178135e3ac0aec5f69ecbd34152e2b7d606e84e687ad27405448927daedcbc9dd26937207af31a4186ddc6b3a71d5d4088f39b1373ea7ee48c8017ed7799b06f0c6d4af5221325c2582de540ed538fbf841cfc66eaa7a6306bf300f5a621ed5ffd52d3ce249c694efe3d5e009be998c2614a66408986cd76c31c2106dfaac5588ed48acded1f0b490169b36a704ad65e41aabeb51efe4121c8fd61926806bff5c094904fa5801d6c7c8fae2d9e5e9b709375ee0b14cd0ccae50371edaa4bf3c905c46dcf589d02bd3c53accea8caf4044a95f7f60e7068b85ede6fcd04e9ee649ca800ca19936289a663c5cba4e1de045eb245acb11abc6ab759623e37afc67da46061151e7624a9938db98e18683e3e68a9055412648bc621ec1effdb3739c883b1232b8e4ea0ab42f75cc493e21a777e932f4350ab78f750f68c0709d2ab99bd998cc73f2a40b5ae47e43e5881a1a647bb1b50021656f9466ba3c33817694e0260f9cd849a1545548986af16b5750e0e4f5a5593fad790e73c11860d931dd5122a0878e1e159805a99a05dd277231241f9a124a702727a9473eb01b547858fb49a93cde0e45804e98021633d3c50dcc3973ad52041540a3b68d8d6aa4163a173f77d7a3febf1c16b1dc48f1f811c16dffdbc949b4c76c40aaf5fc3e7d5eaff45bb2976603b2dd2afd09cd15da5ca3c241ff29f7d9894e8e73ebc9b0853d0479fb150cf9e2c92ae56e3adf8f0960e85c57adf01e8de575c270f50b09392f1d20fd0390f9a1458e626436ab9335e27690db697d2ab00e410c6edfe05915ca65877271c71dd0041c6bff22cf46bdfb78730357b6f572534e6eef50e0b6aaa216c725eb217c7d16dfe9dfacf3fd7998be39aa54a81a14997098e947e816327b55f1a86fecea1269725662eafba45b58b99ac421a450a83d856681e5bf2c7821709656cf9a15296b1a6091b3b7305eba67ebaa2259ac1c969e24fad9bf2c94ec36ae0fe783b067f25f1d8b484d859ae044e3f802ee27a92225de6466a14a2f29b8fe3f90ffc5abd094cf5681e82fd05c114e0a5652e4994e5dd1aa173ab8333bdc6d64adb5ed21361b92784afec748e2ad10e7414e77fb191ffabaa095c684d8de5eab7867b28e485e6c47a2b2d9df5c7154a5d038e340abade1cf73e5ec4047ff5aa332822b5629fcae0f10033256fbbd40537d63f4a37dfe457d557fe073e38d102664ebd27c286fcf7e8676efd98ad7fd07e3258c98d50193a406dc7a6d0c7a6191c96785ca64af922bbecc9953ff0e0c89b414f83f2cd4eada122c1f025d0e711bf648edf2445d15c1bd45929eac11e7d727cc0cc1d8fa6a3faa587341ce15caf79595c044bbea459e474ef87ba4d09c6f84957983e3a6b2746b0a475feccd055f23705133649c64db4b1ee68374c73e3df006b5485215cd15f2cffe17a12a52711b02a4dd7fc56c909ecb9c2c2921f080f8be47bd60e3a0a09d8636e8ff8bfa88e0121c5596bf7e8e66fdc9b83e5e70e193d71d4fd9d4eb5b018441379417fa0ce44351d9e787422dd77fa44ed8685d91ddfa614acd81c9a8b3b0e5a8b493c208127f1bbb71b486d92416132cb837e4febfbd2f5693c20ca8281d7b59ac552da0344cef9c02c7f320a0b167497124f396b50f5b22456d8f087f5f9720dd435e1c0aec4876362e09ef4604a8321e486640a49dfa0c76739d2102550afb69ee0baa94234093e44021f7d893fce79db712c76129abd8c602e4b216d1341cbd84b92549ebdc602479217bb8d0061da48a4e6986b427366f060ac4f311f3355989eaf9be89926cd4d93b9d86b58df5b3d88a5a8fb2b5bc185fe060b559cd96a4232a188c336a4bca87e01581cca2dd9b9347c5d14fa9de95dd1d101f93e0252b68dea50d94fedfff5e78d8deb0ba30f17860eef28d358794bafae4ded5ea620db7c202c1cfe26925a3e9c89d914f530356d804e970f3e930a257241c273f974ea3b7b8f377a2c0eb6e210c49046dd8322c37d04109dd6cd6e02d1c3445f4e7b05c45a4690fe671c5a4ee5b1dd4410087d8324c018db95561ad31490cbfe6861b8504955946a0783a54c79fbef8b1d93b88aac549d1f9acc26a6a13cbb9ad2f2243d871c6b1e45aa57dd1829c1d0849689f0a4254d48304d4cc9ad7bdf9aef38d99801873254fdd70ec0a21d2befa2bb3b536c386da3ceec79399baa9ed6eb812ff9d48f68254e3c6773241f24da103a780fa67545f5b1a3730f82404a13dd73160cad6aba18e332eda67bdf8e9e7d8fe2eeb77c3511c91d5ac67d8a4d50b0f409bb531aac425e5c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e62fcbc4796f99217282f30c654764f572d9bfd9df7de9ce1e37922fa3caf8124cef3dffcef386be2c8d1307761717e2eb9f43c151f2da9f1647e9d454abf13a3e27b969ef04fed3b39000b7b977e602d6e6a2b1c8c0d618bebf6dd875243ea3c63faf0af44a428f182686f0d924bb30e369a9549630c7b98a969394f58431067710336ea5403bd2db4b38104477a2e8d61a533ebb575fe67a18f58ae1742b7293006979e67ad7a681a68297efc27d4db9ab5085d5e470e0d6ed981dfe7a1ddbfd6e15df40b5fa9f51e327f937d33656ec2e9729ab6bba7e6f45827b49187afd087f7d13b1abfab993c9d5f5e5c0719222db257832f934bb3d9e822098f609224678e7910f89499bbba5070e28633b1c468726914824c44f882fb455c3d4eeabd448933a44b968b1e59f98a6463027733db421934bea000cca25342c968c05a6b4e6c06a407f11995a6cbe88c0cf43520b79468e22fdf67ed14a92824657ea354e642dbcc8ca9d2c8b7c53fe23979f560908aec5e99fd460cd9ed8bf454c119be594312b1c530d35d1443722277303889866e7ddcaf2d15e88eacabbf9bd8a5d29ce72b2a1c74e31f6bc174702e30edea405238ca6e136128266d36aef9df79f313668bd25f616ff75235f5b36736d9ff17a674e7c4c0644e275d7a17a18d25759d6d9afa559775e6cbec5f6d555906d9dcc2e8bfb846506aa75687acee9ed7698abc51792db27126daeccaf5a23e934e418c703356892318b23e214e4869aa3a6fd1d01f535b9f817f4deb3cda4ac41b81fcdfcd1098d845f90097426a6c0b76df66a59fdd4424fe06dc1f0a7ba7a1ba3cb0e206f5d29784d9c3637e8c0d6d20b01f7065c73c642902bd53755e673eb1f6f62ec10d665b16737456f3f9fd7c3fda4c9e311ded6def2e0578639af3459feccbb5ebb804b39d9039010339bc13e79c76d8673dad1436d44e7b245a049afbf053ab8161d2a3c32537c107f9df4c1d6aea384f2a661771f3d08487bedd4eaf4dd6b0bd0787e9f64d6e0357ba200ba91617f5a058a7b704f9c4d8f2d3032fd67a71b815adeca1322c56e615a6a817fd82080862c0635b3b9e1c0d6d2955a41d9ca3d25e3bbeb582fdcbd1dddfd4f06af9a1c0fd864367f166af33dafe0329e3ac489b60fc9ccf6df7f3af578038b7c2488440124630f7b1458de92080069597db6a224f2d787c362d7176a5c884cc86a9304ab4ab6e2e9b1f2d3eaa82e18f631dea6f5f5c1c56a8941d98d0dfb02238f0b395e798d5d3b3fc92898f390db3dea91d6e1ff8909ceda76152b9fdda5259e56fafb4be72a72223d105ab8d41fa6d835e1b43c1090315d4b5621f1a07cdb52727230d370cab814d0cd97a9b0a7caf49bdfb3577472179de7aeaa8e613f90a81a029fc9eb9cb2cc70c167a318b4081b4ba436f4ce229418c3c4c356ef9cef78e9e1b3bfc423a801a1145e73c76bf44aabaf752a11362428cd264a6a6eca007f884326a6ff0018b864db5ed6049257c9c3a0a49af08816d6bff9e550c0c45c03098c00be7e6765d5f86bd98ba72dcdccf713d2087b2773e26954de4403bd7d57d161ab06fa3d662498d87f84e612acda5b78887d586d030357be22d4ae9afc7563a2efb83dfca418701f28fc8ecd979b6314f23213d200faa50e8a04bcb809c314246424a5da63030d79553adee46ae58e939b12d7d1397e1765336ef0b19bcec259315a6529dee2b4cf519c29393321f3233cfd45a74789524b788b5eb76b0533076c09e051889644171af030b5b2806e4277e311a0f2019f2440c97b70ee3a440618db66d7613b172a2df880e61cf24f69a88099434e50ca7f99139fc6748dc30e2989e9a20165eb5fd173c9563cc021dd9b5bd0752fd1ae93fca3900b9d64f8d5385a9bc8ace0afc78d1e4c6683c3c50a98dedf0424958016fae5371892782f3d2d0fb72f270e57f09009d591a7fd6dac6d4790da1759064f6a59d93027bc68c48086c600929e766880a598d7759cb1806a764cf750990bcb7f9e19af2be6120fee52e95ce22dc74be79280d4814b99182c06cd58e24b2e45efe19bf6d5fb80bb98fee9d9c777c6150d6032314e51f5db1a78eb201f5399a1c5ee90636c1d883b84c25c7275f79a664d1e7f552d66d412bed63ef293c7adee5683dac34e5f2f2c044e650da98ff8a0d3d4a5c1d59fed4a4af75f1115563d7f476a931d1c9cec6847d17936a0acceb768161988f3452d723085e19b5bb7f6960daf721745782dca09917689adfd81bfc5d247dc1c58d2a9ffb1d2c4bd25bb17b5d635a1e91470101636dd61f2778e24dfd6d360a6be5b6f30bd6f33fd351f3e4bc9d9af7eba67ae967d88c7685683369489e04b71443fe602fa77260c64a549108280c99d94eb0dc19c1686bfc2743dbf5f13e9fd6be8aeffb82f1c498f18c24949a8e5c0e23bc1b575220ed837e2b3da102bb488015644742bb67c5289711b760da436789113cc23b24127313d4eacaf9a68ef8eb2be2c8c468953543d7ce513b4e1dc53465dc01ca0cf0074e4b03059d24d950acd5191e4fbd976ec061a3f82397362f0db209ff725a72367566a9879960566b0c0e2b07b6d8fb48f8706ad5e1532f2a50a9a50ecc14418ffd9e0acd467b24a8ce4c33565ef9f82b3a47bcf98f0fc5f6f96341ffe10d57623ce777444b2bda2fb9a8280c90530b0c88313480f67568b66af71dc6f0718a1be4328207662e38b1ac17bf5b3cfe405c1750f4e54dae5b889ab15739c197a3410c70923563ee263416b7b11bd665264d2c6c3a2d84aefbcfc6555481ddab493b4389ac96a0e7a759bbdee112a8c81cda4b923a81675f901a03d9d7ba45f6576630b8f118782527be92a7faae095d3f2114d7b36fc13f6c4991c1e7797b12728d2da4f98abe944286f383c1f3fdf99f4a28ec357c664854156dccba2bfc5d4346b5a389239d5daaf1b87fe7ff6514c21b0da963152fdcb583f629601a1d30ee2cf2d30bd584ca787560094a17ff5f19aa105b6fd3e979f11cf24287b08b0d8eb37967f991aba9a5148abda86151a0d85701d6ee90484aed5e2d3e86e20fd89c2955692c89c75b43969bc5d2e99735687d268ccf9f08be059915b0b9867e13d0ebfd16140d2cfa698f7f4600273a8b6b56ed9ec2ce7301871fec617de9f55929301afe1a0694eea1d995367e68aeae0cfb10fcc01fd652d2affec38f24ccd7e42a379375a89020c3f2c70b1665254aea0f151565038c5a312d291e6b7d8cbbab2f573f11f788ee19602e85e0c3110ad51605be85e39980d0390fc3c83d5ebac11d0e40632a696323853d60ff8860bce8466812823f524970169c8118f3a510fbbf1ec35f01e27ccee3dc8413b326420e4e0e47ef1a552f1db6b37a8cd48abc60e570cbcd87eb8cece85ec6b2f466fe39d4aec5ccbe95ec92e639a34789b70026ebc0aaa1858d83baf8f64c3d24b1c68e27db3ff94a37b9a0ee1f2f6f0581628e63d466965eb21f0ef47a026232cd9e15c7b4603adffa2bc8e1d453aa899466e0116b4bccba61d5da6a47ba4a36cf39bfcdb677c6a0efbd0a02936ef8706868fe368a3f06cfcaf5f03239c229f1058dc57d2b38b9583ed753cc1d24c08a0272e39a54e1b72d95f94d61b3df1febc9fbaa44a66214a4eeaaa89b9603bacc4a5b89f904eda7d3e88ecd1a88b659da844400d8f07f1535dbd30ce5ae5a93a88493aa32aab228bf4571c01207d3b42b0002409a454d404b4d8395bd5576d194891850eed42ac6ae7a797397209dec8a64cb3f1869be90a752ff2a41608fd3e3dd5242aa216cdfbbd8d68a202712945614c61c614df3047effd949cae8c2d189590dba9cd8e13e28b8a1e9809662b28081a1922dc0d7a6c352f9402ee320b9eff58cfbb8785316a11b44bc084e9842eb4907a3244d12488270cb79ce304cd39856438b0eae2c0155ad15e281513959f7ccf998784e83e803b9be5b1b4714d266aaaff5983f4c12694c7c4a1ee3f3c12d88dfad670d5cec1f86f1e1c64a47e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc00854115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63c67b5260b50a0f434e9b26585479ce67ab2184adc7b31c26d665642d3512835f9ebc062c88c456c1fe15f28f160cdc2201df68f7ede6087d847cc41df248f87df808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f436eca032113ea0d9236f155c25a4fdcf9f2283fd9ac5d0d0600c1d14f8c5717982ada85587617ab8a8750cdbe35c8f2540c12fe1e2c1fa4bc0ad5e81200231d017595397c6685d8f9d07c6fa9779690d58436f2e5873f8d0f1c0ca76bd817cc6273d2cb656a0eac042bc99d2f6b3eb9bd173c03296c16572ffff579077f4211bcaec567b9412c5fc9bfb1e8ddfe0cfe17412a462a7081888f30d9dc54f231233ae24461cf65b8e1091fccb856a654dd5561100fbad4d17c0e2650a66b497160535685b60ba6f10d75651388834b79abdd9e652a245c17c7755485ae21478e8ba1fab6c70313b0729ba218245aeac0236c74462c5fc35f15eb1810e0dd96b63c95d47ccb4c003636bf7bf014c2d690e7ce86e8799d714582ef881900a0007b939e70c9ae1b349da88733aaea13b73696d48be3c901eaef869be8f945c1d939ac057587b8a8d63dc30e6839723d503439b2220cf70129a46019648080d2fc6fbc25c28092b75a9ba5f1d7ec07953324fa3560145f3b59ffb0441019a5e2454dca2317972a21aa9d156c5ba1a9020030ae2497a3b195f30b5a803386afe1992cefa8137ccc4459f60043c97778406d738cd9aea670720360b6275e1ce0fc798d04aedd854e4f4aa7a0b1ed54d6f4ab1747b01209f34ede5203718af14cb3628ccb626f46f7dc002666717d1d7e51e0faa64531ec5905391d0dcc703104d3d568709e9e778c4a4c033daae72e3ade47b5517479791c6e01a2e41f95590e49aeafdd938eb1c9502cc3b33cdd145b2cc3db15cd46c91f309ce0ebfeab128d1611e07a2eeeedd7606f1470a6fa375121ef56b1115ffd4781a0560720d1e612c333feaf75ebb38c8a4108f19abdfd35bb3592b6be5417a18d2e64dc288153a4beb950c8e1c8d93d810a6e22226770b495a3d1267560319a161cdd6c0a6171a44380af939e06944c5cc6b17a366f9961efbd04c4cf3194f925d2a0296d3109c016855ebeea37e009e9afa094deec08f514a32bafa40f5b0ebf94ccf14161e1bc7d244fea422ed3fbebfb0885b43b9f88655504ca8e6b1027325dd589b4987b73b932a0ea57b947e9950c74e74c88317fcd9fd3f9430cce617dd37e2d7c8e001ad1b358ce57a27e91692f85c97c16691373d6833a7f82559b1bddcc94ba30b3737e157952de31062277de6f2f3d2e56ea43296c5fdf3908f8996fbe8413a31b733903dafb1b3057b571fd1dbe880137fdf1bd0ff30d46a8f61abf4545a256d74635d5bcef7c0b645c9f2ffb9b0bbdee24128afe2cad65337a026eac246a1d4b6c9c50bb79026ed6784b152850d4b8af84b44217438c42b33185a2f442ffcca5990d884c208212af4e3a4ac3a7c92a308a376a0a6ba176224efc8b3b8e8689b1fc7cacf9fadb09524032713077a75f291cead00120a5c145ba2b4e319660003514a4d7d12313cecc3c4e5258390ce7faef6fb5fa52a4647fc2c1124e0d41add4f3f567f3e0bd3c654ff6f601f7e97c7039cb6bf1f40b4d6d70f28fe8bd72914364ac7490168766b009e32e1b82509a2d09c6040c638767047b2ca72a4d03181c35bd017da45a17609e2f196c548b3d60ff6fdc43fbad415e58db66b0d47e106c4ce7839784cae8a5ae855c45d815c5ffde0d6f776fe56e3bdc4e9c3f5f3030a921cd570f84604ba7ec1f52dff6b0ccce335b6017e24acb091afa69150053953412f754b8273f6df4afbfeda14a89df4a415b974d8febd94bceae3bfcf70d21e2ae7e7ce90558e9bd401bc4813b0e496311a20f1cb36daa270d88f7ed10d811209cd26cbba53312a78c454f3c77a1d7666b4366b4e6f1668a72e076cb9153ebbfaa5cec0201dcec2ad12d96cb22363a16e3cce4ddd5946400667ed95acb79a3e2d3f306991e25b52ffb9e9c0c980d2dae68b87fa7417511d55c40b8012919411539a0bbb824f2fec4b0b96b4faa84eef53282e511c038656e778ccee2a4bafbe56a6a0107f9bb79cd2321fd9bf9c1be7ff9e30b0487a58a63f35e77c140f9374e30221ff2d03ca5d66baa13b40db2b0a6bfeefdad43b5cc34351a0224f0e40a9f1db781c77fb362dcee7d0ba78452f1a4187b30492eb5b2843714528e05ad59da28104db358aca805efc7b426a033fee2f41b0c402ac76663220f20990af60176ff6c0af160df08e5b5a17ef29a6b82d708efe23aa349ac3bdaf25a7a8e8577b52ca9aa1b671a7bbf6a54b06d54c28bd7e7c2aaf33086966afc322baa1336df9839d6d0c00e39b74ee74022f0e97d2a6cf6717dba971503081dec7a29b11b54d6b0e8847da53rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootborgbackup-1.1.17-bp154.1.20.src.rpmborgbackup-docborgbackup-doc(aarch-64)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3`@`` @` @``o`"y@_^(@^?@^@^l@^j$@^h]\@\Y@\b@\ac\ac\V\U@[n[d@[WZ@Z@Z1@ZZ@ZH@Zm@ZV@Z.s@ZZYY@YY @Xk@Xk@XWw@WF@W!W_W3W @@WHans-Peter Jansen Hans-Peter Jansen ecsos ecsos Paolo Stivanin Antonio Larrosa Paolo Stivanin Antonio Larrosa Antonio Larrosa Hans-Peter Jansen Hans-Peter Jansen Paolo Stivanin Paolo Stivanin Antonio Larrosa Hans-Peter Jansen Hans-Peter Jansen Hans-Peter Jansen Jan Engelhardt Antonio Larrosa Hans-Peter Jansen atoptsoglou@suse.comkbabioch@suse.comkbabioch@suse.comkbabioch@suse.commlin@suse.comalarrosa@suse.comhpj@urpla.nethpj@urpla.netalarrosa@suse.comjacobwinski@gmail.comalarrosa@suse.comalarrosa@suse.comalarrosa@suse.comalarrosa@suse.comalarrosa@suse.comalarrosa@suse.comalarrosa@suse.comlbeltrame@kde.orghpj@urpla.nethpj@urpla.nethpj@urpla.netjengelh@inai.dealarrosa@suse.comhpj@urpla.nethpj@urpla.nethpj@urpla.nethpj@urpla.nethpj@urpla.nethpj@urpla.net- Update to 1.1.17 (2021-07-12): Compatibility notes: * When upgrading from borg 1.0.x to 1.1.x, please note: * read all the compatibility notes for 1.1.0*, starting from 1.1.0b1. * borg upgrade: you do not need to and you also should not run it. * borg might ask some security-related questions once after upgrading. You can answer them either manually or via environment variable. One known case is if you use unencrypted repositories, then it will ask about a unknown unencrypted repository one time. * your first backup with 1.1.x might be significantly slower (it might completely read, chunk, hash a lot files) - this is due to the –files-cache mode change (and happens every time you change mode). You can avoid the one-time slowdown by using the pre-1.1.0rc4-compatible mode (but that is less safe for detecting changed files than the default). See the –files- cache docs for details. * 1.1.11 removes WSL autodetection (Windows 10 Subsystem for Linux). If WSL still has a problem with sync_file_range, you need to set BORG_WORKAROUNDS=basesyncfile in the borg process environment to work around the WSL issue. * 1.1.14 changes return codes due to a bug fix: In case you have scripts expecting rc == 2 for a signal exit, you need to update them to check for >= 128 (as documented since long). * 1.1.15 drops python 3.4 support, minimum requirement is 3.5 now. * 1.1.17 install_requires the “packaging” pypi package now. Fixes: * pyinstaller dir-mode: fix pyi detection / LIBPATH treatment, [#5897] * handle crash due to kill stale lock race, #5828 * fix BORG_CACHE_DIR crashing borg if empty, #5216 * create –dry-run: fix display of kept tagfile, #5834 * fix missing parameter in “did not consistently fail” msg, [#5822] * missing / healed chunks: always tell chunk ID, #5704 * benchmark: make sure cleanup happens even on exceptions, #5630 New features: * implement BORG_SELFTEST env variable, #5871. this can be used to accelerate borg startup a bit. not recommended for normal usage, but borg mass hosters with a lot of borg invocations can save some resources with this. on my laptop, this saved ~100ms cpu time (sys+user) per borg command invocation. * implement BORG_LIBC env variable to give the libc filename, [#5870]. you can use this if a borg does not find your libc. * check: add progress indicator for archive check. * allow –files-cache=size (not recommended, make sure you know what you do) Other changes: * Python 3.10 now officially supported! we test on py310-dev on github CI since a while and now also on the vagrant machines, so it should work ok. * github CI: test on py310 (again) * get rid of distutils, use packaging and setuptools. distutils is deprecated and gives warnings on py 3.10. * setup.py: rename “clean” to “clean2” to avoid shadowing the “clean” command. * remove libc filename fallback for the BSDs (there is no “usual” name) * cleanup flake8 checks, fix some pep8 violations. * docs building: replace deprecated function “.add_stylesheet()” for Sphinx 4 compatibility * docs: * add a hint on sleeping computer and ssh connections, #5301 * update the documentation on hacked backup client, #5480 * improve docs/FAQ about append-only remote repos, #5497 * complement the documentation for pattern files and exclude files, #5520 * “filename with spaces” example added to exclude file, #5236 note: no whitespace escaping needed, processed by borg. * add info on renaming repositories, #5240 * clarify borg check –verify-data, #5808 * add notice about defective hardware to check documentation, [#5753] * add paragraph added in #5855 to utility documentation source * add missing leading slashes in help patterns, #5857 * clarify “you will need key and passphrase” borg init warning, [#4622] * pull mode: add some warnings, #5827 * mention tar –compare (compare archive to fs files), #5880 * fix typos, backport of #5597 * vagrant: * add py3.7.11 for binary build, also add 3.10-dev. * use latest Cython 0.29.23 for py310 compat fixes. * more RAM for openindiana upgrade plan resolver, it just hangs (swaps?) if there is too little RAM. * fix install_pyenv to adapt to recent changes in pyenv (same as in master now). * use generic/netbsd9 box, copied from master branch. - Reformatted Paolos last changelog - Revert logic of borgbackup-1.1.16-fix-sphinx-api.patch: borgbackup-1.1.17-old-sphinx-api.patch - Allow to use old version of xxhash library (might crash on ARM), but an update is in enqueued- Fix documentation generation with borgbackup-1.1.16-fix-sphinx-api.patch for Leap >= 15.3- Remove the version from recommends pyfuse3, because it doesn't work in suse.- Use recommends pyfuse3 instead of llfuse for Tumbleweed. Upstream says use primary pyfuse3 and secondary llfuse.- Update to 1.1.16: Fixes: * setup.py: add special openssl prefix for Apple M1 compatibility * do not recurse into duplicate roots, #5603 * remove empty shadowed_segments lists, #5275, #5614 * fix libpython load error when borg fat binary / dir-based binary is invoked via a symlink by upgrading pyinstaller to v4.2, #5688 * config: accept non-int value (like 500M or 100G) for max_segment_size or storage_quota, #5639. please note: when setting a non-int value for this in a repo config, using the repo will require borg >= 1.1.16. New features: * bundled msgpack: drop support for old buffer protocol to support Python 3.10 * verbose files cache logging via --debug-topic=files_cache, [#5659]. Use this if you suspect that borg does not detect unmodified files as expected. * create/extract: add --noxattrs and --noacls option, #3955. when given with borg create, borg will not get xattrs / ACLs from input files (and thus, it will not archive xattrs / ACLs). when given with borg extract, borg will not read xattrs / ACLs from archive and will not set xattrs / ACLs on extracted files. * diff: add --json-lines option, #3765 Other changes: * Tab completion support for additional archives for 'borg delete' * repository: deduplicate code of put and delete, no functional change Docs updates- Update to 1.1.15: * drops python 3.4 support, minimum requirement is 3.5 now. Fixes: * extract: + improve exception handling when setting xattrs, #5092. + emit a warning message giving the path, xattr key and error message. + continue trying to restore other xattrs and bsdflags of the same file after an exception with xattr-setting happened. * export-tar: + set tar format to GNU_FORMAT explicitly, #5274 + fix memory leak with ssh: remote repository, #5568 + fix potential memory leak with ssh: remote repository with partial extraction * create: fix --dry-run and --stats coexistence, #5415 * use --timestamp for {utcnow} and {now} if given, #5189 New features: * create: implement --stdin-mode, --stdin-user and --stdin-group, [#5333] * allow appending the files cache filename with BORG_FILES_CACHE_SUFFIX env var Other changes: * drop python 3.4 support, minimum requirement is 3.5 now. * enable using libxxhash instead of bundled xxh64 code * update llfuse requirements (1.3.8) * set cython language_level in some files to fix warnings * allow EIO with warning when trying to hardlink * PropDict: fail early if internal_dict is not a dict * update shell completions * tests / CI + add a test for the hashindex corruption bug, #5531 #4829 + fix spurious failure in test_cache_files, #5438 + added a github ci workflow + reduce testing on travis, no macOS, no py3x-dev, #5467 + travis: use newer dists, native py on dist * vagrant: + remove jessie and trusty boxes, #5348 #5383 + pyinstaller 4.0, build on py379 + binary build on stretch64, #5348 + remove easy_install based pip installation * docs: + clarify '--one-file-system' for btrfs, #5391 + add example for excluding content using the --pattern cmd line arg + complement the documentation for pattern files and exclude files, #5524 + made ansible playbook more generic, use package instead of pacman. also change state from "latest" to "present". + complete documentation on append-only remote repos, #5497 + internals: rather talk about target size than statistics, [#5336] + new compression algorithm policy, #1633 #5505 + faq: add a hint on sleeping computer, #5301 + note requirements for full disk access on macOS Catalina, [#5303] + fix/improve description of borg upgrade hardlink usage, [#5518] * modernize 1.1 code: + drop code/workarounds only needed to support Python 3.4 + remove workaround for pre-release py37 argparse bug + removed some outdated comments/docstrings + requirements: remove some restrictions, lock on current versions- Update to 1.1.14: Compatibility notes: * changes return codes due to a bug fix: In case you have scripts \ expecting rc == 2 for a signal exit, you need to update them to check for >= 128 (as documented since long). Fixes: * check --repair: fix potential data loss when interrupting it, #5325 * exit with 128 + signal number (as documented) when borg is killed by a signal, #5161 * fix hardlinked CACHEDIR.TAG processing, #4911 * create --read-special: .part files also should be regular files, #5217 Other changes: * upgrade bundled xxhash to 0.7.4 * prettier error message when archive gets too big * check/recreate are not "experimental" any more (but still potentially dangerous) * use "allow/deny list" instead of "white/black list" wording * update docs- Update to 1.1.13: * rebuilt using a current Cython version, compatible with python 3.8, #5214 - Update to 1.1.12: Fixes: * fix preload-related memory leak, #5202. * mount / borgfs (FUSE filesystem): + fix FUSE low linear read speed on large files, #5067 + fix crash on old llfuse without birthtime attrs, #5064 - accidentally we required llfuse >= 1.3. Now also old llfuse works again. + set f_namemax in statfs result, #2684 * update precedence of env vars to set config and cache paths, #4894 * correctly calculate compression ratio, taking header size into account, too New features: * --bypass-lock option to bypass locking with read-only repositories Other changes: * upgrade bundled zstd to 1.4.5 * travis: adding comments and explanations to Travis config/install script, improve macOS builds. * tests: test_delete_force: avoid sporadic test setup issues, #5196 * misc. vagrant fixes * the binary for macOS is now built on macOS 10.12 * the binaries for Linux are now built on Debian 8 "Jessie", #3761 * docs: + PlaceholderError not printed as JSON, #4073 + "How important is Borg config?", #4941 + make Sphinx warnings break docs build, #4587 + some markup / warning fixes + add "updating borgbackup.org/releases" to release checklist, #4999 + add "rendering docs" to release checklist, #5000 + clarify borg init's encryption modes + add note about patterns and stored paths, #4160 + add upgrade of tools to pip installation how-to + document one cause of orphaned chunks in check command, #2295 + linked recommended restrictions to ssh public keys on borg servers in faq, #4946 - Remove patch already included in 1.1.12: * 0001-rename-local-preload-function-to-not-overwrite-keyword-argument.patch- Add patch to fix a memory issue that in some cases might make borg use more than 32 GB of memory for an operation that shouldn't consume any memory at all, thus forcing the kernel to kill the process: * 0001-rename-local-preload-function-to-not-overwrite-keyword-argument.patch- Add libb2 dependency, where appropriate (avoids bundling libb2) - Remove outdated build fixes from spec - Provide proper compile flags - Install all available man files - Disable 2 progress related tests, that fail for TW- Add fdupes build dependency - break overlong lines in changelog- Update to 1.1.11 Fixes: * fixed potential index corruption / data loss issue due to bug in hashindex_set, #4829 Please read and follow the more detailled notes close to the top of this document. * upgrade bundled xxhash to 0.7.3, #4891 0.7.2 is the minimum requirement for correct operations on ARMv6 in non-fixup mode, where unaligned memory accesses cause bus errors. 0.7.3 adds some speedups and libxxhash 0.7.3 even has a pkg-config file now. * upgrade bundled lz4 to 1.9.2 * upgrade bundled zstd to 1.4.4 * fix crash when upgrading erroneous hints file, #4922 * extract: - fix KeyError for "partial" extraction, #4607 - fix "partial" extract for hardlinked contentless file types, #4725 - fix preloading for old (0.xx) remote servers, #4652 - fix confusing output of borg extract --list --strip-components, #4934 * delete: after double-force delete, warn about necessary repair, #4704 * create: give invalid repo error msg if repo config not found, #4411 * mount: fix FUSE mount missing st_birthtime, #4763 #4767 * check: do not stumble over invalid item key, #4845 * info: if the archive doesn't exist, print a pretty message, #4793 * SecurityManager.known(): check all files, #4614 * Repository.open: use stat() to check for repo dir, #4695 * Repository.check_can_create_repository: use stat() to check, #4695 * fix invalid archive error message * fix optional/non-optional location arg, #4541 * commit-time free space calc: ignore bad compact map entries, #4796 * ignore EACCES (errno 13) when hardlinking the old config, #4730 * --prefix / -P: fix processing, avoid argparse issue, #4769 New features: * enable placeholder usage in all extra archive arguments * new BORG_WORKAROUNDS mechanism, basesyncfile, #4710 * recreate: support --timestamp option, #4745 * support platforms without os.link (e.g. Android with Termux), #4901 if we don't have os.link, we just extract another copy instead of making a hardlink. * support linux platforms without sync_file_range (e.g. Android 7 with Termux), #4905 Other: * ignore --stats when given with --dry-run, but continue, #4373 * add some ProgressIndicator msgids to code / fix docs, #4935 * elaborate on "Calculating size" message * argparser: always use REPOSITORY in metavar, also use more consistent help phrasing. * check: improve error output for matching index size, see #4829- fix building with python3- Require python3-setuptools since it's needed when running borg to find the entry point (boo#1134650)- Update to version 1.1.10 (2019-05-16) + Compatibility notes: * When upgrading from borg 1.0.x to 1.1.x, please note: * read all the compatibility notes for 1.1.0*, starting from 1.1.0b1. * borg upgrade: you do not need to and you also should not run it. * borg might ask some security-related questions once after upgrading. You can answer them either manually or via environment variable. One known case is if you use unencrypted repositories, then it will ask about a unknown unencrypted repository one time. * your first backup with 1.1.x might be significantly slower (it might completely read, chunk, hash a lot files) - this is due to the --files-cache mode change (and happens every time you change mode). You can avoid the one-time slowdown by using the pre-1.1.0rc4-compatible mode (but that is less safe for detecting changed files than the default). See the - -files-cache docs for details. + Fixes: * extract: hang on partial extraction with ssh: repo, when hardlink master is not matched/extracted and borg hangs on related slave hardlink, #4350 * lrucache: regularly remove old FDs, #4427 * avoid stale filehandle issues, #3265 * freebsd: make xattr platform code api compatible with linux, [#3952] * use whitelist approach for borg serve, #4097 * borg command shall terminate with rc 2 for ImportErrors, [#4424] * create: only run stat_simple_attrs() once, this increases backup with lots of unchanged files performance by ~ 5%. * prune: fix incorrect borg prune --stats output with --dry- run, #4373 * key export: emit user-friendly error if repo key is exported to a directory, #4348 + New features: * bundle latest supported msgpack-python release (0.5.6), remove msgpack-python from setup.py install_requires - by default we use the bundled code now. optionally, we still support using an external msgpack (see hints in setup.py), but this requires solid requirements management within distributions and is not recommended. borgbackup will break if you upgrade msgpack to an unsupported version. * display msgpack version as part of sysinfo (e.g. in tracebacks) * timestamp for borg delete --info added, #4359 * enable placeholder usage in --comment and --glob-archives, [#4559], #4495 + Other: * serve: do not check python/libc for borg serve, #4483 * shell completions: borg diff second archive * release scripts: signing binaries with Qubes OS support * testing: * vagrant: upgrade openbsd box to 6.4 * travis-ci: lock test env to py 3.4 compatible versions, #4343 * get rid of confusing coverage warning, #2069 * rename test_mount_hardlinks to test_fuse_mount_hardlinks, so both can be excluded by "not test_fuse". * pure-py msgpack warning shall not make a lot of tests fail, [#4558] * docs: * add "SSH Configuration" section to "borg serve", #3988, #636, [#4485] * README: new URL for funding options * add a sample logging.conf in docs/misc, #4380 * elaborate on append-only mode docs, #3504 * installation: added Alpine Linux to distribution list, #4415 * usage.html: only modify window.location when redirecting, [#4133] * add msgpack license to docs/3rd_party/msgpack * vagrant / binary builds: * use python 3.5.7 for builds * use osxfuse 3.8.3 - remove msgpack patch fix-msgpack-requirement.patch and borg_msgpack build conditional, since msgpack is bundled now (yeah!)- According to upstream preference and dealing with msgpack update in Factory, allow msgpack <= 0.6.1 as well- Modify patch fix-msgpack-requirement.patch to allow msgpack-0.5.4 as well. See patch for discussion. - Clean-up dependency blocks- Update RPM groups.- Update to 1.1.9: - Fixes: - security fix: configure FUSE with "default_permissions", gh#borgbackup/borg#3903 "default_permissions" is now enforced by borg by default to let the kernel check uid/gid/mode based permissions. "ignore_permissions" can be given to not enforce "default_permissions". - make “hostname” short, even on misconfigured systems, gh#borgbackup/borg#4262 - fix free space calculation on macOS (and others?), gh#borgbackup/borg#4289 - config: quit with error message when no key is provided, gh#borgbackup/borg#4223 - recover_segment: handle too small segment files correctly, gh#borgbackup/borg#4272 - correctly release memoryview, gh#borgbackup/borg#4243 - avoid diaper pattern in configparser by opening files, gh#borgbackup/borg#4263 - add "# cython: language_level=3" directive to .pyx files, #4214 - info: consider part files for "This archive" stats, gh#borgbackup/borg#3522 - work around Microsoft WSL issue gh#borgbackup/borg#645 (sync_file_range), [#1961] - New features: - add –rsh command line option to complement BORG_RSH env var, gh#borgbackup/borg#1701 - init: -make-parent-dirs parent1/parent2/repo_dir, gh#borgbackup/borg#4235 - Other: - add archive name to check -repair output, gh#borgbackup/borg#3447 - check for unsupported msgpack versions - shell completions: - new shell completions for borg 1.1.9 - more complete shell completions for borg mount -o - added shell completions for borg help - option arguments for zsh tab completion - docs: - add FAQ regarding free disk space check, gh#borgbackup/borg#3905 - update BORG_PASSCOMMAND example and clarify variable expansion, gh#borgbackup/borg#4249 - FAQ regarding change of compression settings, gh#borgbackup/borg#4222 - add note about BSD flags to changelog, gh#borgbackup/borg#4246 - improve logging in example automation script - add note about files changing during backup, gh#borgbackup/borg#4081 - work around the backslash issue, gh#borgbackup/borg#4280 - update release workflow using twine (docs, scripts), gh#borgbackup/borg#4213 - add warnings on repository copies to avoid future problems, gh#borgbackup/borg#4272 - tests: - fix the homebrew 1.9 issues on travis-ci, gh#borgbackup/borg#4254 - fix duplicate test method name, gh#borgbackup/borg#4311 - Moved the docs to a new -doc subpackage - Use the %license tag for the license- Add conditionals to control various build aspects distribution agnostic- Update to 1.1.8: - Fixes - enforce storage quota if set by serve-command - invalid locations: give err msg containing parsed location - list repo: add placeholders for hostname and username - symlinks can't have ACLs, so don't try to set any - New features - create: added PATH::archive output on INFO log level - read a passphrase from a file descriptor specified in the BORG_PASSPHRASE_FD environment variable. - docs: - option --format is required for some expensive-to-compute values for json - borg list by default does not compute expensive values except when they are needed. whether they are needed is determined by the format, in standard mode as well as in --json mode. - fixed wrong archive name pattern in CRUD benchmark help - fixed link to cachedir spec in docs - tests: - stop using fakeroot on travis, avoids sporadic EISDIR errors - xattr key names must start with "user." on linux - fix code so flake8 3.6 does not complain - explicitly convert environment variable to str - fix DeprecationWarning: Flags not at the start of the expression - support pytest4- Update to 1.1.7: - Fixes - cache lock: use lock_wait everywhere to fix infinite wait - don't archive tagged dir when recursing an excluded dir - New features - init: add warning to store both key and passphrase at safe place(s) - BORG_HOST_ID env var to work around all-zero MAC address issue - borg debug dump-repo-objs --ghost (dump everything from segment files, including deleted or superceded objects or commit tags) - borg debug search-repo-objs (search in repo objects for hex bytes or strings) - Other changes: - add Python 3.7 support - updated shell completions - locking: better logging, add some asserts- Update to 1.1.6: - Fixes - fix borg exception handling on ENOSPC error with xattrs - prune: fix/improve overall progress display - borg config repo ... does not need cache/manifest/key - New features - mount: add uid, gid, umask mount options - delete: - only commit once - implement --dry-run - check: - show progress while rebuilding missing manifest - more --repair output - borg config --list - Use OpenPGP signature provided upstream - Added borgbackup.keyring, which contains the key from the author- Leap 15.0 and SLE15 both are moved to renamed python3-msgpack, fix-msgpack-requirement.patch have to be used to deal with msgpack package rename fallout.- Update to 1.1.5 - Fixes: * create --list: fix that it was never showing M status * create: fix timing for first checkpoint (read files cache early, init checkpoint timer after that) * extract: set rc=1 when extracting damaged files with all-zero replacement chunks or with size inconsistencies * diff: consider an empty file as different to a non-existing file * files cache: improve exception handling * ignore exceptions in scandir_inorder() caused by an implicit stat(), also remove unneeded sort * fixed tab completion problem where a space is always added after path even when it shouldn't * build: do .h file content checks in binary mode, fixes build issue for non-ascii header files on pure-ascii locale platforms * borgfs: fix patterns/paths processing * config: add some validation * repository config: add validation for max_segment_size * set cache previous_location on load instead of save * remove platform.uname() call which caused library mismatch issues * add exception handler around deprecated platform.linux_distribution() call * use same datetime object for {now} and {utcnow} - New features: * create: implement --stdin-name * add chunker_params to borg archive info (--json) * BORG_SHOW_SYSINFO=no to hide system information from exceptions - Other changes: * updated zsh completions for borg 1.1.4 * files cache related code cleanups * be more helpful when parsing invalid --pattern values * be more clear in secure-erase warning message * improve getpass user experience * docs build: unicode problem fixed when using a py27-based sphinx - docs: * security: explicitly note what happens OUTSIDE the attack model * security: add note about combining compression and encryption * security: describe chunk size / proximity issue * quickstart: add note about permissions, borg@localhost * quickstart: add introduction to repositories & archives * recreate --recompress: add missing metavar, clarify description * improve logging docs * add an example for --pattern usage * clarify path semantics when matching * link to offline documentation from README * add docs on how to verify a signed release with GPG * chunk seed is generated per repository (not: archive) * better formatting of CPU usage documentation * extend append-only repo rollback docs - tests: * fix erroneously skipped zstd compressor tests * skip a test if argparse is broken - Drop borgbackup-1.1.4-binary-content-checks.patch which is already included upstream. - Rebase fix-msgpack-requirement.patch- Fix sphinx theme fallback condition- Add patch to fall back to a sphinx default theme for older distributions that don't have python3-guzzle_sphinx_theme available * borgbackup-1.1.4-sphinx-default-theme.patch- Add patch to require the new msgpack python module in Tumbleweed instead of the deprecated msgpack-python python module: * fix-msgpack-requirement.patch- Add patch borgbackup-1.1.4-binary-content-checks.patch: * Fixes build failure due to bad encoding * Based on upstream commit 9cf8d57 "do .h file content checks in binary mode" * This patch will no longer be needed with borgbackup > 1.1.4- Don't use liblz4 nor libzstd on Leap 42.x which doesn't support them and add missing requirement python-guzzle_sphinx_theme on Tumbleweed.- Update to borgbackup 1.1.4 * Fix a potential data corruption issue with 'borg check --repair' happening in borg >= 1.1 and < 1.1.4 * zstd compression is new in borg 1.1.4, older borg can't handle it. * new minimum requirements for the compression libraries: + added requirement: libzstd >= 1.3.0 + updated requirement: liblz4 >= 1.7.0 / r129 - Fixes: * check: data corruption fix: fix for borg check --repair malfunction. See the more detailed notes at https://github.com/borgbackup/borg/blob/1.1.4/docs/changes.rst * delete: also delete security dir when deleting a repo * prune: fix building the "borg prune" man page * init: use given --storage-quota for local repo * init: properly quote repo path in output * fix startup delay with dns-only own fqdn resolving - New features: * added zstd compression. * added placeholder {reverse-fqdn} for fqdn in reverse notation * added BORG_BASE_DIR environment variable - Other changes: * list help topics when invalid topic is requested * fix lz4 deprecation warning, requires lz4 >= 1.7.0 (r129) * add parens for C preprocessor macro argument usages (did not cause malfunction) * exclude broken pytest 3.3.0 release * updated fish/bash completions * init: more clear exception messages for borg create * docs: + add auto-generated docs for borg config + don't generate HTML docs page for borgfs + docs update for lz4 b2 zstd changes + add zstd to compression help, readme, docs + update requirements and install docs about bundled lz4 and zstd + refactored build of the compress and crypto.low_level extensions + move some lib/build related code to setup_{zstd,lz4,b2}.py + bundle lz4 1.8.0 (requirement: >= 1.7.0 / r129) + bundle zstd 1.3.2 (requirement: >= 1.3.0) + blake2 was already bundled + rename BORG_LZ4_PREFIX env var to BORG_LIBLZ4_PREFIX for better consistency: we also have BORG_LIBB2_PREFIX and BORG_LIBZSTD_PREFIX now. + add prefer_system_lib* = True settings to setup.py - by default the build will prefer a shared library over the bundled code, if library and headers can be found and meet the minimum requirements.- Update to borgbackup 1.1.3 - Fixes: * Security Fix for CVE-2017-15914: Incorrect implementation of access controls allows remote users to override repository restrictions in Borg servers. A user able to access a remote Borg SSH server is able to circumvent access controls post-authentication. Affected releases: 1.1.0, 1.1.1, 1.1.2. Releases 1.0.x are NOT affected. * crc32: deal with unaligned buffer, add tests - this broke borg on older ARM CPUs that can not deal with unaligned 32bit memory accesses and raise a bus error in such cases. the fix might also improve performance on some CPUs as all 32bit memory accesses by the crc32 code are properly aligned now. * mount: fixed support of --consider-part-files and do not show .borg_part_N files by default in the mounted FUSE filesystem. * fixed cache/repo timestamp inconsistency message, highlight that information is obtained from security dir (deleting the cache will not bypass this error in case the user knows this is a legitimate repo). * borgfs: don't show sub-command in borgfs help * create: show an error when --dry-run and --stats are used together - New features: * mount: added exclusion group options and paths. Reused some code to support similar options/paths as borg extract offers - making good use of these to only mount a smaller subset of dirs/files can speed up mounting a lot and also will consume way less memory. borg mount [options] repo_or_archive mountpoint path [paths...] paths: you can just give some "root paths" (like for borg extract) to only partially populate the FUSE filesystem. new options: --exclude[-from], --pattern[s-from], --strip-components * create/extract: support st_birthtime on platforms supporting it * add "borg config" command for querying/setting/deleting config values - Other changes: * clean up and simplify packaging (only package committed files, do not install .c/.h/.pyx files) * docs: * point out tuning options for borg create * add instructions for using ntfsclone, zerofree * move image backup-related FAQ entries to a new page * clarify key aliases for borg list --format * mention break-lock in checkpointing FAQ entry * document sshfs rename workaround * add FAQ about removing files from existing archives * add FAQ about different prune policies * usage and man page for borgfs * clarify create --stats duration vs. wall time * clarify encrypted key format for borg key export * update release checklist about security fixes * document good and problematic option placements, fix examples * add note on using --nobsdflags to avoid speed penalty related to bsdflags * move most of support section to www.borgbackup.org- Fix build on Leap 42.2 by BuildRequiring bash-completion- Update to borgbackup 1.1.2 - Fixes: * fix KeyError crash when talking to borg server < 1.0.7 * extract: set bsdflags last (include immutable flag) * create: don't do stat() call on excluded-norecurse directory, fix exception handling for stat() call * create --stats: do not count data volume twice when checkpointing * recreate: move chunks_healthy when excluding hardlink master * recreate: get rid of chunks_healthy when rechunking (does not match) * check: get rid of already existing not matching chunks_healthy metadata * list: fix stdout broken pipe handling * list/diff: remove tag-file options (not used) - New features: * bash, zsh and fish shell auto-completions, see scripts/shell_completions/ * added BORG_CONFIG_DIR env var - Other changes: * docs: * clarify using a blank passphrase in keyfile mode * mention "!" (exclude-norecurse) type in "patterns" help * document to first heal before running borg recreate to re-chunk stuff, because that will have to get rid of chunks_healthy metadata. * more than 23 is not supported for CHUNK_MAX_EXP * borg does not respect nodump flag by default any more * clarify same-filesystem requirement for borg upgrade * update / rephrase cygwin / WSL status * improve docs about --stats * vagrant: openindiana new clang package - Already contained in 1.1.1 (last minute fix): * arg parsing: fix fallback function, refactor - Generate new subpackages borgbackup-bash-completion, borgbackup-zsh-completion and borgbackup-fish-completion with autocompletion scripts for each shell.- Update to borgbackup 1.1.1 - Compatibility notes: * When upgrading from borg 1.0.x to 1.1.x, please note: * read all the compatibility notes for 1.1.0*, starting from 1.1.0b1. * borg might ask some security-related questions once after upgrading. You can answer them either manually or via environment variable. One known case is if you use unencrypted repositories, then it will ask about a unknown unencrypted repository one time. * your first backup with 1.1.x might be significantly slower (it might completely read, chunk, hash a lot files) - this is due to the - -files-cache mode change (and happens every time you change mode). You can avoid the one-time slowdown by using the pre-1.1.0rc4-compatible mode (but that is less safe for detecting changed files than the default). See the --files-cache docs for details. * The deprecated --no-files-cache is not a global/common option any more, but only available for borg create (it is not needed for anything else). Use --files-cache=disabled instead of --no-files-cache. * The nodump flag ("do not backup this file") is not honoured any more by default because this functionality (esp. if it happened by error or unexpected) was rather confusing and unexplainable at first to users. If you want that "do not backup NODUMP-flagged files" behaviour, use: borg create --exclude-nodump ... - Fixes: * borg recreate: correctly compute part file sizes. fixes cosmetic, but annoying issue as borg check complains about size inconsistencies of part files in affected archives. you can solve that by running borg recreate on these archives. * bsdflags support: do not open BLK/CHR/LNK files, avoid crashes and slowness * recreate: don't crash on attic archives w/o time_end * don't crash on repository filesystems w/o hardlink support * don't crash in first part of truncate_and_unlink * fix server-side IndexError crash with clients < 1.0.7 * don't show traceback if only a global option is given, show help * cache: use SaveFile for more safety * init: fix wrong encryption choices in command line parser, fix missing "authenticated-blake2" * move --no-files-cache from common to borg create options * fix detection of non-local path (failed on ..filename) * logging with fileConfig: set json attr on "borg" logger * fix crash with relative BORG_KEY_FILE * show excluded dir with "x" for tagged dirs / caches - New features: * create: --nobsdflags and --exclude-nodump options * extract: --nobsdflags option - Other changes: * remove annoying hardlinked symlinks warning * vagrant: use self-made FreeBSD 10.3 box * docs: * readme: -e option is required in borg 1.1 * add example showing --show-version --show-rc * use --format rather than --list-format (deprecated) in example * update docs about hardlinked symlinks limitation- Update to borgbackup 1.1.0 - Changelog: * Major new features in the 1.1 release series are: * borg recreate: remove files from existing archives and re-chunk or re-compress them. This finally allows deduplication between legacy Attic / Borg 0.xx archives and Borg 1.x archives. This is an experimental feature. * borg diff: show differences between two archives. * borg mount: show all recorded versions of files with the "versions view". * borg list: more formatting options, including generation of hashes and per-file chunk statistics. * borg create: automatic compression mode (-C auto,zlib/lz4/...), faster handling of many files, experimental support for inclusion patterns (--patterns, --patterns-from), files cache mode control (mtime/ctime) * borg export-tar: streaming export of GNU tar compatible archives. * Archive comments * BLAKE2b256-based encryption modes, and "authenticated" modes that provide data integrity without encryption. These provide better performance than the existing SHA-256-based modes on most hardware, except where the x86 SHA extensions are available (e.g. AMD Ryzen). * Repository indices and the Borg cache now use checksums to detect bitrot and other corruption. * A documented JSON API has been added to the most vital commands (borg list, borg info and borg create). * Structured JSON logging is available for all commands. * --prefix has been supplemented with --glob-archives (-a), --sort-by, - -last and --first options. These can be used for borg list, borg info, borg mount, borg check, borg delete and borg prune. * Quality of life improvements: * options that imply output (--show-rc, --show-version, --list, --stats, - -progress) don't need -v/--info to have that output displayed any more. * borg check is silent by default (finally!). * borg can now checkpoint within (big) files, not only between files. * borg delete can delete multiple archives by giving their names. * Automatic removal of stale locks, which should make "borg break-lock" essentially superfluous. This is enabled by default, see BORG_HOSTNAME_IS_UNIQUE. * Answers to prompts like "Accessing previously unknown repository" are now saved immediately. * Cache synchronization and "borg info" are now faster. * Reduced space usage of chunks.archive.d in the cache by 30-40 %. Existing caches are migrated during a cache sync. * The cache used for remote cache syncs and mounting remote repositories does not grow indefinitely any more, but adapts to the available space. Good riddance, TMP=/var/tmp! * BORG_PASSCOMMAND makes using key rings and hardware keys much easier. * Documentation improvements * Compatibility notes for upgrading from Borg 1.0 to Borg 1.1: * No explicit "borg upgrade" is required. * Borg 1.1 uses some new data structures which are backwards-compatible with Borg 1.0.4 and newer. * Borg 1.0 can't make use of Borg 1.1's "compact cache" and will silently ignore it. * The default compression has been changed from "none" to "lz4". * Repositories in the "repokey" and "repokey-blake2" modes with an empty passphrase are now treated as unencrypted repositories for security checks (e.g. BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK). * borg init: + -e/--encryption is now a mandatory option with no default value. Previously the default value was "repokey". + the short form of --append-only (-a) has been removed. + running "borg init" via a "borg serve --append-only" server will not create an append-only repository any more. Use "borg init --append-only" to initialize an append-only repository. * borg create: the --exclude-if-present option now supports tagging a folder with any file system object type (file, folder, etc.), instead of accepting only files as tags. * borg upgrade: the short form of --inplace (-i) has been removed. * borg delete: the short form of --cache-only (-c) has been removed. * "borg migrate-to-repokey" has been renamed to "borg key migrate-to-repokey" with no deprecation notice, since it is rarely and only manually used. - For more information, see https://www.borgbackup.org/releases/borg-1.1.html- Update to version 1.0.11 (2017-07-21) Bug fixes: - use limited unpacker for outer key (security precaution), #2174 - fix paperkey import bug Other changes: - change --checkpoint-interval default from 600s to 1800s, #2841. this improves efficiency for big repositories a lot. - docs: fix OpenSUSE command and add OpenSUSE section - tests: add tests for split_lstring and paperkey - vagrant: - fix openbsd shell - backport cpu/ram setup from master - add stretch64 VM- update to version 1.0.10 (2017-02-13) Bug fixes: - Manifest timestamps are now monotonically increasing, this fixes issues when the system clock jumps backwards or is set inconsistently across computers accessing the same repository, #2115 - Fixed testing regression in 1.0.10rc1 that lead to a hard dependency on py.test >= 3.0, #2112 New features: - “key export” can now generate a printable HTML page with both a QR code and a human-readable “paperkey” representation (and custom text) through the --qr-html option. - The same functionality is also available through paperkey.html, which is the same HTML page generated by --qr-html. It works with existing “key export” files and key files. Other changes: - docs: - language clarification - “borg create –one-file-system” option does not respect mount points, but considers different file systems instead, #2141 - setup.py: build_api: sort file list for determinism - update to version 1.0.10rc1 (2017-01-29) Bug fixes: - borg serve: fix transmission data loss of pipe writes, #1268 This affects only the cygwin platform (not Linux, BSD, OS X). - Avoid triggering an ObjectiveFS bug in xattr retrieval, #1992 - When running out of buffer memory when reading xattrs, only skip the current file, #1993 - Fixed “borg upgrade –tam” crashing with unencrypted repositories. Since the issue is not relevant for unencrypted repositories, it now does nothing and prints an error, #1981. - Fixed change-passphrase crashing with unencrypted repositories, #1978 - Fixed “borg check repo::archive” indicating success if “archive” does not exist, #1997 - borg check: print non-exit-code warning if –last or –prefix aren’t fulfilled - fix bad parsing of wrong repo location syntax - create: don’t create hard link refs to failed files, mount: handle invalid hard link refs, #2092 - detect mingw byte order, #2073 - creating a new segment: use “xb” mode, #2099 - mount: umount on SIGINT/^C when in foreground, #2082 Other changes: - binary: use fixed AND freshly compiled pyinstaller bootloader, #2002 - xattr: ignore empty names returned by llistxattr(2) et al - Enable the fault handler: install handlers for the SIGSEGV, SIGFPE, SIGABRT, SIGBUS and SIGILL signals to dump the Python traceback. - Also print a traceback on SIGUSR2. - borg change-passphrase: print key location (simplify making a backup of it) - officially support Python 3.6 (setup.py: add Python 3.6 qualifier) tests: - vagrant / travis / tox: add Python 3.6 based testing - vagrant: fix openbsd repo, #2042 - vagrant: fix the freebsd64 machine, #2037 #2067 - vagrant: use python 3.5.3 to build binaries, #2078 - vagrant: use osxfuse 3.5.4 for tests / to build binaries vagrant: improve darwin64 VM settings - travis: fix osxfuse install (fixes OS X testing on Travis CI) - travis: require succeeding OS X tests, #2028 - travis: use latest pythons for OS X based testing - use pytest-xdist to parallelize testing - fix xattr test race condition, #2047 - setup.cfg: fix pytest deprecation warning, #2050 docs: - language clarification - VM backup FAQ - borg create: document how to backup stdin, #2013 - borg upgrade: fix incorrect title levels - add CVE numbers for issues fixed in 1.0.9, #2106 - fix typos (taken from Debian package patch) - remote: include data hexdump in “unexpected RPC data” error message - remote: log SSH command line at debug level - API_VERSION: use numberspaces, #2023 - remove .github from pypi package, #2051 - add pip and setuptools to requirements file, #2030 - SyncFile: fix use of fd object after close (cosmetic) - Manifest.in: simplify, exclude *.{so,dll,orig}, #2066 - ignore posix_fadvise errors in repository.py, #2095 (works around issues with docker on ARM) - make LoggedIO.close_segment reentrant, avoid reentrance- disable %check for leap versions, their pytest package is too old- update to version 1.0.9 (2016-12-20) - Security fixes: - A flaw in the cryptographic authentication scheme in Borg allowed an attacker to spoof the manifest. See :ref:`tam_vuln` above for the steps you should take. Fixes CVE-2016-10099 - borg check: When rebuilding the manifest (which should only be needed very rarely) duplicate archive names would be handled on a "first come first serve" basis, allowing an attacker to apparently replace archives. Fixes CVE-2016-10100 - Bug fixes: - borg check: rebuild manifest if it's corrupted skip corrupted chunks during manifest rebuild - fix TypeError in integrity error handler, #1903, #1894 - fix location parser for archives with @ char (regression introduced in 1.0.8), #1930 - fix wrong duration/timestamps if system clock jumped during a create - fix progress display not updating if system clock jumps backwards - fix checkpoint interval being incorrect if system clock jumps - update to version 1.0.9rc1 (2016-11-27) - Bug fixes: - files cache: fix determination of newest mtime in backup set (which is used in cache cleanup and led to wrong "A" [added] status for unchanged files in next backup), #1860. - borg check: - fix incorrectly reporting attic 0.13 and earlier archives as corrupt - handle repo w/o objects gracefully and also bail out early if repo is completely empty, #1815. - fix tox/pybuild in 1.0-maint - at xattr module import time, loggers are not initialized yet - update to version 1.0.8 (2016-10-29) - Bug fixes: - RemoteRepository: Fix busy wait in call_many, #940 - update to version 1.0.8rc1 (2016-10-17) - Bug fixes: - fix signal handling (SIGINT, SIGTERM, SIGHUP), #1620 #1593 Fixes e.g. leftover lock files for quickly repeated signals (e.g. Ctrl-C Ctrl-C) or lost connections or systemd sending SIGHUP. - progress display: adapt formatting to narrow screens, do not crash, [#1628] - borg create --read-special - fix crash on broken symlink, #1584. also correctly processes broken symlinks. before this regressed to a crash (5b45385) a broken symlink would've been skipped. - process_symlink: fix missing backup_io() Fixes a chmod/chown/chgrp/ unlink/rename/... crash race between getting dirents and dispatching to process_symlink. - yes(): abort on wrong answers, saying so, #1622 - fixed exception borg serve raised when connection was closed before reposiory was openend. add an error message for this. - fix read-from-closed-FD issue, #1551 (this seems not to get triggered in 1.0.x, but was discovered in master) - hashindex: fix iterators (always raise StopIteration when exhausted) (this seems not to get triggered in 1.0.x, but was discovered in master) - enable relative pathes in ssh:// repo URLs, via /./relpath hack, #1655 - allow repo pathes with colons, #1705 - update changed repo location immediately after acceptance, #1524 - fix debug get-obj / delete-obj crash if object not found and remote repo, #1684 - pyinstaller: use a spec file to build borg.exe binary, exclude osxfuse dylib on Mac OS X (avoids mismatch lib <-> driver), #1619- Trim description- Remove smp parameters when building documentation so different sphinx instances are not run in parallel which sometimes fails due to a race condition- update to version 1.0.7 (2016-08-19): a critical security fix and some major bug fixes Please check: https://github.com/borgbackup/borg/blob/1.0.7/docs/changes.rst - clean specfile- update to version 1.0.6 (2016-07-12) Bug fixes: * Linux: handle multiple LD_PRELOAD entries correctly, #1314, #1111 * Fix crash with unclear message if the libc is not found, #1314, #1111 Other changes: * tests: * Fixed O_NOATIME tests for Solaris and GNU Hurd, #1315 * Fixed sparse file tests for (file) systems not supporting it, #1310 * docs: * Fixed syntax highlighting, #1313 * misc docs: added data processing overview picture - update to version 1.0.6rc1 (2016-07-10) New features: * borg check –repair: heal damaged files if missing chunks re-appear (e.g. if the previously missing chunk was added again in a later backup archive), #148. (*) Also improved logging. Bug fixes: * sync_dir: silence fsync() failing with EINVAL, #1287 Some network filesystems (like smbfs) don’t support this and we use this in repository code. * borg mount (FUSE): fix directories being shadowed when contained paths were also specified, #1295 raise I/O Error (EIO) on damaged files (unless -o allow_damaged_files is used), [#1302]. (*) * borg extract: warn if a damaged file is extracted, #1299. (*) Added some missing return code checks (ChunkIndex._add, hashindex_resize). * borg check: fix/optimize initial hash table size, avoids resize of the table. Other changes: * tests: add more FUSE tests, #1284 deduplicate fuse (u)mount code fix borg binary test issues, #862 * docs: changelog: added release dates to older borg releases fix some sphinx (docs generator) warnings, #881 Notes: (*) Some features depend on information (chunks_healthy list) added to item metadata when a file with missing chunks was “repaired” using all-zero replacement chunks. The chunks_healthy list is generated since borg 1.0.4, thus borg can’t recognize such “repaired” (but content-damaged) files if the repair was done with an older borg version. - update to version 1.0.5 (2016-07-07) Bug fixes: * borg mount: fix FUSE crash in xattr code on Linux introduced in 1.0.4, #1282 Other changes: * backport some FAQ entries from master branch * add release helper scripts * Vagrantfile: centos6: no FUSE, don’t build binary add xz for redhat-like dists - update to version 1.0.4 (2016-07-07) New features: * borg serve –append-only, #1168 This was included because it was a simple change (append-only functionality was already present via repository config file) and makes better security now practically usable. * BORG_REMOTE_PATH environment variable, #1258 This was included because it was a simple change (–remote-path cli option was already present) and makes borg much easier to use if you need it. * Repository: cleanup incomplete transaction on “no space left” condition. In many cases, this can avoid a 100% full repo filesystem (which is very problematic as borg always needs free space - even to delete archives). Bug fixes: * Fix wrong handling and reporting of OSErrors in borg create, #1138. This was a serious issue: in the context of “borg create”, errors like repository I/O errors (e.g. disk I/O errors, ssh repo connection errors) were handled badly and did not lead to a crash (which would be good for this case, because the repo transaction would be incomplete and trigger a transaction rollback to clean up). Now, error handling for source files is cleanly separated from every other error handling, so only problematic input files are logged and skipped. * Implement fail-safe error handling for borg extract. Note that this isn’t nearly as critical as the borg create error handling bug, since nothing is written to the repo. So this was “merely” misleading error reporting. * Add missing error handler in directory attr restore loop. * repo: make sure write data hits disk before the commit tag (#1236) and also sync the containing directory. * FUSE: getxattr fail must use errno.ENOATTR, #1126 (fixes Mac OS X Finder malfunction: “zero bytes” file length, access denied) * borg check –repair: do not lose information about the good/original chunks. If we do not lose the original chunk IDs list when “repairing” a file (replacing missing chunks with all-zero chunks), we have a chance to “heal” the file back into its original state later, in case the chunks re-appear (e.g. in a fresh backup). Healing is not implemented yet, see #148. * fixes for –read-special mode: ignore known files cache, #1241 fake regular file mode, #1214 improve symlinks handling, #1215 * remove passphrase from subprocess environment, #1105 * Ignore empty index file (will trigger index rebuild), #1195 * add missing placeholder support for –prefix, #1027 * improve exception handling for placeholder replacement * catch and format exceptions in arg parsing * helpers: fix “undefined name ‘e’” in exception handler * better error handling for missing repo manifest, #1043 * borg delete: make it possible to delete a repo without manifest borg delete –forced allows to delete corrupted archives, #1139 * borg check: make borg check work for empty repo fix resync and msgpacked item qualifier, #1135 rebuild_manifest: fix crash if ‘name’ or ‘time’ key were missing. better validation of item metadata dicts, #1130 better validation of archive metadata dicts * close the repo on exit - even if rollback did not work, #1197. This is rather cosmetic, it avoids repo closing in the destructor. * tests: fix sparse file test, #1170 flake8: ignore new F405, #1185 catch “invalid argument” on cygwin, #257 fix sparseness assertion in test prep, #1264 Other changes: * make borg build/work on OpenSSL 1.0 and 1.1, #1187 * docs / help: fix / clarify prune help, #1143 fix “patterns” help formatting add missing docs / help about placeholders resources: rename atticmatic to borgmatic document sshd settings, #545 more details about checkpoints, add split trick, #1171 support docs: add freenode web chat link, #1175 add prune visualization / example, #723 add note that Fnmatch is default, #1247 make clear that lzma levels > 6 are a waste of cpu cycles add a “do not edit” note to auto-generated files, #1250 update cygwin installation docs * repository interoperability with borg master (1.1dev) branch: borg check: read item metadata keys from manifest, #1147 read v2 hints files, #1235 fix hints file “unknown version” error handling bug * tests: add tests for format_line * llfuse: update version requirement for freebsd * Vagrantfile: use openbsd 5.9, #716 do not install llfuse on netbsd (broken) update OSXfuse to version 3.3.3 use Python 3.5.2 to build the binaries * glibc compatibility checker: scripts/glibc_check.py * add .eggs to .gitignore- Update to version 1.0.3: Bug fixes: - prune: avoid that checkpoints are kept and completed archives are deleted in a prune run), #997 - prune: fix commandline argument validation - some valid command lines were considered invalid (annoying, but harmless), #942 - fix capabilities extraction on Linux (set xattrs last, after chown()), #1069 - repository: fix commit tags being seen in data - when probing key files, do binary reads. avoids crash when non-borg binary files are located in borg's key files directory. - handle SIGTERM and make a clean exit - avoids orphan lock files. - repository cache: don't cache large objects (avoid using lots of temp. disk space), #1063 Other changes: - Vagrantfile: OS X: update osxfuse / install lzma package, #933 - setup.py: add check for platform_darwin.c - setup.py: on freebsd, use a llfuse release that builds ok - docs / help: - update readthedocs URLs, #991 - add missing docs for "borg break-lock", #992 - borg create help: add some words to about the archive name - borg create help: document format tags, #894- Update to version 1.0.2: Bug fixes: - fix malfunction and potential corruption on (nowadays rather rare) big-endian architectures or bi-endian archs in (rare) BE mode. #886, #889 cache resync / index merge was malfunctioning due to this, potentially leading to data loss. borg info had cosmetic issues (displayed wrong values). note: all (widespread) little-endian archs (like x86/x64) or bi-endian archs in (widespread) LE mode (like ARMEL, MIPSEL, ...) were NOT affected. - add overflow and range checks for 1st (special) uint32 of the hashindex values, switch from int32 to uint32. - fix so that refcount will never overflow, but just stick to max. value after a overflow would have occured. - borg delete: fix --cache-only for broken caches, #874 Makes --cache-only idempotent: it won't fail if the cache is already deleted. - fixed borg create --one-file-system erroneously traversing into other filesystems (if starting fs device number was 0), #873 - workround a bug in Linux fadvise FADV_DONTNEED, #907 Other changes: - better test coverage for hashindex, incl. overflow testing, checking correct computations so endianness issues would be discovered. - reproducible doc for ProgressIndicator*, make the build reproducible. - use latest llfuse for vagrant machines - docs: - use /path/to/repo in examples, fixes #901 - fix confusing usage of "repo" as archive name (use "arch")- Update to version 1.0.1: New features: Usually there are no new features in a bugfix release, but these were added due to their high impact on security/safety/speed or because they are fixes also: - append-only mode for repositories, #809, #36 (see docs) - borg create: add --ignore-inode option to make borg detect unmodified files even if your filesystem does not have stable inode numbers (like sshfs and possibly CIFS). - add options --warning, --error, --critical for missing log levels, #826. it's not recommended to suppress warnings or errors, but the user may decide this on his own. note: --warning is not given to borg serve so a <= 1.0.0 borg will still work as server (it is not needed as it is the default). do not use --error or --critical when using a <= 1.0.0 borg server. Bug fixes: - fix silently skipping EIO, #748 - add context manager for Repository (avoid orphan repository locks), #285 - do not sleep for >60s while waiting for lock, #773 - unpack file stats before passing to FUSE - fix build on illumos - don't try to backup doors or event ports (Solaris and derivates) - remove useless/misleading libc version display, #738 - test suite: reset exit code of persistent archiver, #844 - RemoteRepository: clean up pipe if remote open() fails - Remote: don't print tracebacks for Error exceptions handled downstream, #792 - if BORG_PASSPHRASE is present but wrong, don't prompt for password, but fail instead, #791 - ArchiveChecker: move "orphaned objects check skipped" to INFO log level, #826 - fix capitalization, add ellipses, change log level to debug for 2 messages, [#798] Other changes: - update llfuse requirement, llfuse 1.0 works - update OS / dist packages on build machines, #717 - prefer showing --info over -v in usage help, #859 - docs: - fix cygwin requirements (gcc-g++) - document how to debug / file filesystem issues, #664 - fix reproducible build of api docs - RTD theme: CSS !important overwrite, #727 - Document logo font. Recreate logo png. Remove GIMP logo file. - rename package to borgbackup - create/install html docs/man page - remove dependency on python3-pytest-benchmark- version 1.0.0: initial buildobs-arm-2 1652093447  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~1.1.17-bp154.1.201.1.17-bp154.1.20      borgbackup-dochtml_imagescompaction.pngencryption.pngobject-graph.pngstructure.png_sourcesauthors.rst.txtbook.rst.txtchanges.rst.txtdeploymentdeployment.rst.txtautomated-local.rst.txtcentral-backup-server.rst.txthosting-repositories.rst.txtimage-backup.rst.txtpull-backup.rst.txtdevelopment.rst.txtfaq.rst.txtindex.rst.txtinstallation.rst.txtinternalsinternals.rst.txtdata-structures.rst.txtfrontends.rst.txtsecurity.rst.txtintroduction.rst.txtman_intro.rst.txtquickstart.rst.txtresources.rst.txtsupport.rst.txtusageusage.rst.txtbenchmark.rst.txtborgfs.rst.txtcheck.rst.txtconfig.rst.txtcreate.rst.txtdebug.rst.txtdelete.rst.txtdiff.rst.txtextract.rst.txtgeneral.rst.txthelp.rst.txtinfo.rst.txtinit.rst.txtkey.rst.txtlist.rst.txtlock.rst.txtmount.rst.txtnotes.rst.txtprune.rst.txtrecreate.rst.txtrename.rst.txtserve.rst.txttar.rst.txtupgrade.rst.txt_staticbasic.csscssbootstrap-theme.min.cssbootstrap.min.cssborg.cssdoctools.jsdocumentation_options.jsfavicon.icofile.pngfontsglyphicons-halflings-regular.eotglyphicons-halflings-regular.svgglyphicons-halflings-regular.ttfglyphicons-halflings-regular.woffopen-sansfontsOpenSans-Bold-webfont.eotOpenSans-Bold-webfont.svgOpenSans-Bold-webfont.ttfOpenSans-Bold-webfont.woffOpenSans-BoldItalic-webfont.eotOpenSans-BoldItalic-webfont.svgOpenSans-BoldItalic-webfont.ttfOpenSans-BoldItalic-webfont.woffOpenSans-ExtraBold-webfont.eotOpenSans-ExtraBold-webfont.svgOpenSans-ExtraBold-webfont.ttfOpenSans-ExtraBold-webfont.woffOpenSans-ExtraBoldItalic-webfont.eotOpenSans-ExtraBoldItalic-webfont.svgOpenSans-ExtraBoldItalic-webfont.ttfOpenSans-ExtraBoldItalic-webfont.woffOpenSans-Italic-webfont.eotOpenSans-Italic-webfont.svgOpenSans-Italic-webfont.ttfOpenSans-Italic-webfont.woffOpenSans-Light-webfont.eotOpenSans-Light-webfont.svgOpenSans-Light-webfont.ttfOpenSans-Light-webfont.woffOpenSans-LightItalic-webfont.eotOpenSans-LightItalic-webfont.svgOpenSans-LightItalic-webfont.ttfOpenSans-LightItalic-webfont.woffOpenSans-Regular-webfont.eotOpenSans-Regular-webfont.svgOpenSans-Regular-webfont.ttfOpenSans-Regular-webfont.woffOpenSans-Semibold-webfont.eotOpenSans-Semibold-webfont.svgOpenSans-Semibold-webfont.ttfOpenSans-Semibold-webfont.woffOpenSans-SemiboldItalic-webfont.eotOpenSans-SemiboldItalic-webfont.svgOpenSans-SemiboldItalic-webfont.ttfOpenSans-SemiboldItalic-webfont.woffstylesheet.csssource-serif-proEOTSourceSerifPro-Black.eotSourceSerifPro-Bold.eotSourceSerifPro-ExtraLight.eotSourceSerifPro-Light.eotSourceSerifPro-Regular.eotSourceSerifPro-Semibold.eotLICENSE.txtOTFSourceSerifPro-Black.otfSourceSerifPro-Bold.otfSourceSerifPro-ExtraLight.otfSourceSerifPro-Light.otfSourceSerifPro-Regular.otfSourceSerifPro-Semibold.otfREADME.mdReadMe.htmlSourceSerifProReadMe.htmlTTFSourceSerifPro-Black.ttfSourceSerifPro-Bold.ttfSourceSerifPro-ExtraLight.ttfSourceSerifPro-Light.ttfSourceSerifPro-Regular.ttfSourceSerifPro-Semibold.ttfWOFFOTFSourceSerifPro-Black.otf.woffSourceSerifPro-Bold.otf.woffSourceSerifPro-ExtraLight.otf.woffSourceSerifPro-Light.otf.woffSourceSerifPro-Regular.otf.woffSourceSerifPro-Semibold.otf.woffTTFSourceSerifPro-Black.ttf.woffSourceSerifPro-Bold.ttf.woffSourceSerifPro-ExtraLight.ttf.woffSourceSerifPro-Light.ttf.woffSourceSerifPro-Regular.ttf.woffSourceSerifPro-Semibold.ttf.woffbower.jsonsource-serif-pro.cssguzzle.cssjquery-3.4.1.jsjquery.jsjquery.min.mapjsbootstrap.jsbootstrap.min.jslanguage_data.jslogo.svgminus.pngplus.pngpygments.csssearchtools.jsunderscore-1.3.1.jsunderscore.jsauthors.htmlbook.htmlchanges.htmldeploymentdeployment.htmlautomated-local.htmlcentral-backup-server.htmlhosting-repositories.htmlimage-backup.htmlpull-backup.htmldevelopment.htmlfaq.htmlindex.htmlinstallation.htmlinternalsinternals.htmldata-structures.htmlfrontends.htmlsecurity.htmlintroduction.htmlman_intro.htmlobjects.invpaperkey.htmlquickstart.htmlresources.htmlsearch.htmlsearchindex.jssupport.htmlusageusage.htmlbenchmark.htmlborgfs.htmlcheck.htmlconfig.htmlcreate.htmldebug.htmldelete.htmldiff.htmlextract.htmlgeneral.htmlhelp.htmlinfo.htmlinit.htmlkey.htmllist.htmllock.htmlmount.htmlnotes.htmlprune.htmlrecreate.htmlrename.htmlserve.htmltar.htmlupgrade.html/usr/share/doc/packages//usr/share/doc/packages/borgbackup-doc//usr/share/doc/packages/borgbackup-doc/html//usr/share/doc/packages/borgbackup-doc/html/_images//usr/share/doc/packages/borgbackup-doc/html/_sources//usr/share/doc/packages/borgbackup-doc/html/_sources/deployment//usr/share/doc/packages/borgbackup-doc/html/_sources/internals//usr/share/doc/packages/borgbackup-doc/html/_sources/usage//usr/share/doc/packages/borgbackup-doc/html/_static//usr/share/doc/packages/borgbackup-doc/html/_static/css//usr/share/doc/packages/borgbackup-doc/html/_static/fonts//usr/share/doc/packages/borgbackup-doc/html/_static/fonts/open-sans//usr/share/doc/packages/borgbackup-doc/html/_static/fonts/open-sans/fonts//usr/share/doc/packages/borgbackup-doc/html/_static/fonts/source-serif-pro//usr/share/doc/packages/borgbackup-doc/html/_static/fonts/source-serif-pro/EOT//usr/share/doc/packages/borgbackup-doc/html/_static/fonts/source-serif-pro/OTF//usr/share/doc/packages/borgbackup-doc/html/_static/fonts/source-serif-pro/TTF//usr/share/doc/packages/borgbackup-doc/html/_static/fonts/source-serif-pro/WOFF//usr/share/doc/packages/borgbackup-doc/html/_static/fonts/source-serif-pro/WOFF/OTF//usr/share/doc/packages/borgbackup-doc/html/_static/fonts/source-serif-pro/WOFF/TTF//usr/share/doc/packages/borgbackup-doc/html/_static/js//usr/share/doc/packages/borgbackup-doc/html/deployment//usr/share/doc/packages/borgbackup-doc/html/internals//usr/share/doc/packages/borgbackup-doc/html/usage/-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.opensuse.org/openSUSE:Backports:SLE-15-SP4/standard/ecc27a66763813811dcc108b9ec9e669-borgbackupcpioxz5aarch64-suse-linux            !" ######$%&'()*+,-./01234567 8 99$$:$$::$:::::$::$:: ::$$8$$:::$:::$$:::$$:$::::$:$:directoryPNG image data, 1392 x 2089, 8-bit/color RGBA, non-interlacedPNG image data, 1329 x 1029, 8-bit gray+alpha, non-interlacedPNG image data, 2789 x 1832, 8-bit/color RGBA, non-interlacedPNG image data, 2539 x 1714, 8-bit/color RGBA, non-interlacedASCII textUTF-8 Unicode textHTML document, ASCII textASCII text, with very long linesassembler source, ASCII textPNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedSVG Scalable Vector Graphics imageTrueType Font data, 17 tables, 1st "FFTM", 15 names, Macintosh, type 19 string, www.glyphicons.comWeb Open Font Format, TrueType, length 23292, version 1.0TrueType Font data, 16 tables, 1st "FFTM", 8 names, Microsoft, language 0x409, Digitized data copyright \251 2010-2011, Google Corporation.Open SansBoldwebfontOpen Sans BoldVeWeb Open Font Format, TrueType, length 19788, version 1.0TrueType Font data, 16 tables, 1st "FFTM", 8 names, Microsoft, language 0x409, Digitized data copyright \251 2010-2011, Google Corporation.Open SansBold ItalicwebfontOpen SansWeb Open Font Format, TrueType, length 21940, version 1.0TrueType Font data, 16 tables, 1st "FFTM", 8 names, Microsoft, language 0x409, Digitized data copyright \251 2011, Google Corporation.Open SansExtraboldwebfontOpen Sans ExtrabWeb Open Font Format, TrueType, length 19972, version 1.0TrueType Font data, 16 tables, 1st "FFTM", 8 names, Microsoft, language 0x409, Digitized data copyright \251 2010-2011, Google Corporation.Open SansExtrabold ItalicwebfontOpenWeb Open Font Format, TrueType, length 21824, version 1.0TrueType Font data, 16 tables, 1st "FFTM", 8 names, Microsoft, language 0x409, Digitized data copyright \251 2010-2011, Google Corporation.Open SansItalicwebfontOpen Sans ItalWeb Open Font Format, TrueType, length 22416, version 1.0TrueType Font data, 16 tables, 1st "FFTM", 8 names, Microsoft, language 0x409, Digitized data copyright \251 2010-2011, Google Corporation.Open SansLightwebfontOpen Sans LightWeb Open Font Format, TrueType, length 19396, version 1.0TrueType Font data, 16 tables, 1st "FFTM", 8 names, Microsoft, language 0x409, Digitized data copyright \251 2010-2011, Google Corporation.Open SansLight ItalicwebfontOpen SanWeb Open Font Format, TrueType, length 22444, version 1.0TrueType Font data, 16 tables, 1st "FFTM", 8 names, Microsoft, language 0x409, Digitized data copyright \251 2010-2011, Google Corporation.Open SansRegularwebfontOpen Sans RegWeb Open Font Format, TrueType, length 19624, version 1.0TrueType Font data, 16 tables, 1st "FFTM", 8 names, Microsoft, language 0x409, Digitized data copyright \251 2011, Google Corporation.Open SansSemiboldwebfontOpen Sans SemibolWeb Open Font Format, TrueType, length 19736, version 1.0TrueType Font data, 16 tables, 1st "FFTM", 8 names, Microsoft, language 0x409, Digitized data copyright \251 2010-2011, Google Corporation.Open SansSemibold ItalicwebfontOpen Web Open Font Format, TrueType, length 22332, version 1.0OpenType font dataHTML document, UTF-8 Unicode textHTML document, ASCII text, with very long linesTrueType Font data, digitally signed, 18 tables, 1st "BASE", 30 names, Macintosh, Copyright 2014 Adobe Systems Incorporated. All Rights Reserved.Source Serif Pro BlackRegular1.0TrueType Font data, digitally signed, 18 tables, 1st "BASE", 26 names, Macintosh, Copyright 2014 Adobe Systems Incorporated. All Rights Reserved.Source Serif ProBold1.017;ADBE;STrueType Font data, digitally signed, 18 tables, 1st "BASE", 30 names, Macintosh, Copyright 2014 Adobe Systems Incorporated. All Rights Reserved.Source Serif Pro ExtraLightRegulTrueType Font data, digitally signed, 18 tables, 1st "BASE", 30 names, Macintosh, Copyright 2014 Adobe Systems Incorporated. All Rights Reserved.Source Serif Pro LightRegular1.0TrueType Font data, digitally signed, 18 tables, 1st "BASE", 26 names, Macintosh, Copyright 2014 Adobe Systems Incorporated. All Rights Reserved.Source Serif ProRegular1.017;ADBTrueType Font data, digitally signed, 18 tables, 1st "BASE", 30 names, Macintosh, Copyright 2014 Adobe Systems Incorporated. All Rights Reserved.Source Serif Pro SemiboldRegularWeb Open Font Format, CFF, length 48788, version 1.17Web Open Font Format, CFF, length 51188, version 1.17Web Open Font Format, CFF, length 47136, version 1.17Web Open Font Format, CFF, length 49672, version 1.17Web Open Font Format, CFF, length 48972, version 1.17Web Open Font Format, CFF, length 51272, version 1.17Web Open Font Format, TrueType, length 49496, version 1.17Web Open Font Format, TrueType, length 51924, version 1.17Web Open Font Format, TrueType, length 48784, version 1.17Web Open Font Format, TrueType, length 50792, version 1.17Web Open Font Format, TrueType, length 49604, version 1.17Web Open Font Format, TrueType, length 51772, version 1.17ASCII text, with very long lines, with no line terminatorsPNG image data, 11 x 11, 8-bit grayscale, non-interlacedHTML document, UTF-8 Unicode text, with very long lines;ِf?xutf-812ce78085fe7fb83741c565259b481e73c8c51268bdc087821052a33ee3271bd?P7zXZ !t/W] crt:bLL @V;n'e N(Bނ\ݥ6N툊['u0TM ?>^!Aq,]C::/#4/FEFVkFNɐ3NbΨџt~znv: ee##" FՋxf,gV޵5Dy0%UkK U",bOuԵĬyQF;TWoЊ$h=yԿb#]c؆֖?p~NnŘP4`T2%'w-WdHDXSK钃LT#L۪Ϙad2v;Ⱥ-?2Go/mGRrA@Q⁕fy_tOLe*)W"96zbg1T %X =vb@J$FZ@^NW?4^ 7+8^H!)i]JQĝݴ&/1"2 hFM61l}Kɚk6W+Z%v ;9w;8qxFV{C v \@QoCm*/(_ KѡxΈO?;*>^HSS-ozm mBgSJn|+KXnb/4gÊ}5/}IؼZZf蠮b XO_t}p:CS,e4ڝ7bp 8#dAFOwKKD$h;|ǷR(#x!Z}ׄйlx} -x6&'!P{ܛZH/}uB;CyQk7c%uVh+.>8 .!M2P'Snf]SF, q@@ii+ 1硗Nz4Zh3p fϽ%pZI) s.O1pN-ϚB3_. ;MrɈ=8 ^kT-xUx~^s3XMj8)ugo]ztt=st|7{e`ޘa_ pӑ}%ARm;:)O:|JHKOJ-gO2#r>3^zfx=|(.oA_D}羀ԆnöoN|~GB оQ[J6%~,^M M<"iO?4Let8ewv{&)ql+٘gg@(9m)$0 eR&j JvuJ"G@u<%0xA;%䡷lf . 3%k4^l2^+Jd Ԓ_4RR=Xw1E~otqX-7Z2Ωȴ; 0G8JƋ#%ʘ ̆(3+Y=w:BXs7@d%1=sˌ = (lGb>h}8i^Hg2pm  xip5AZg ~Ms_$Q%@ގ|B|mgE(f eSmgk$nXwh&TN簢R!P1=؜wGT`@0L [+qE8 G?JS_KL)w<+*^b+WR87oG!6`}X7׃Yr!T{b߲V`GXt!/q o|y xo7+-K ˌ;AԈj|R] F9๼=9Cfn>D#rDbBlB 0.Y9u}X{>=e&B+*:>VƧ]`pk F<ߚN/E!h%nV-|m˻1ѭhSZrp_Ľ5j%RE3~VۨUѦF}V,tw8UR4,4jԽƑvKw0$+BrS_FlF(P9rëXBm ܣsI6эM.U*To]DרdgLoQK/V(Xb鑺Q R\M>6ݝچL{`ц s K.]˂S8mMPłHG[cq#5xWp^yg^Zcn঺\s/:iJ~ ?;λ^:soXәcWR4q˛؏gpJ:H cFTTGN`gl㥰 ۶vA uj8Ggx~v?N/.;]/Lhq QTP4&[+P\^>@'1w]<#67fK+fU=G!&C½w7|U/0$YV@·yRbR԰ҡ,Gz|&m!C-f+hD _o-ݴ˺}uLD3<6F39{ٿB-3f0ݭ0_Yt&@lB~>Bp+\//qZGoz5Q )T1;] =FZ4M+ 鷵B_%I(M<\,o& Ur V< ɰ( M(7IN5.ݶBRHɺD+c ٵ(>~S Y|o_5b9Mwd"Q*rURDikY*mה*cQ@DC^>z<z; ؁LFqBRS9i6Y TbWyG(<_9<-f,N#Հ9Fc"L97廞$ϗ4RrWքL ·~5ܟ+Uq c͚tSSYEhlUVFop&툷xB ,Wxw)**\ watye2Ms00YrWW*~oвu4WSQCvZZ}&/ R k fkz / Qf4c<6HҩWauT{:=HAQ4#\I3g"]n֘"y#[-hS#G[_=mY ƌ~+i9XSȡZdpPV{k|C] W+c_*xN&<{/K۠xDEE8 %z9NdJ}E*X?8Mf "p}*KB`^ ;'{ m6Ӛ 69jQ  K=b*i B)Bc: t="TÛQ@uAfT#'TGybqB0b[a|3O\mYZCHYnyV/Ge@ \Als}GouO+9Xl(p:"#[o_eSmxZ1F겊)>ëk2l'$ "4c6\ 5 f:u!Ρ$g:]PS5t':#P*l2pՙ4pVf݄exw&s6~nddlk0$FZD;51Q\4[ԬfM+-l*4w2Y~9=%o<*|Ź]D9.W]֫-KE.X?&@k?X 5VºyCȮ[#>4 aL$Lg,$q߷t ~3MuPcfwo^a|xд-j݇aeʷ|`t_'-eCޥ|KX>ji!Y1C<Ď/`E|  ak{|]89ƖvY T5P9g ?B-gQ3eN̮oW`Z. ʊ -Ft8 箥1FgY,gU>?Ow1zGu;L'=6%D|a+)ԉw!%r F1Es},S7if桅KW,'YL~m}~`2 7 Aq"0ݾHk3jck6XΩyffCrժ&PnϠ7.0-<"\_Q VN2o7eY9]]-8zfI Nvf,+س8]]=sp~\w U GZ&U6u`/ցa :YNTY˿PsU#p xh"W7rHZ(r:~raA#)n=wNU~lٲPBE>\(p[(h_{ʛ~/챷oJ!ϼ,as|<އ -|,Q(9(=8F׉!pŜ@\`?WL|`eaEl`39?8r{ʤeTI|o:[乹tqΈ5:<ۺ(ʵoa|]vHFVP8P7 ʩA־~'^l4&l; qf?P7%N-QoKT?]@MVom{J @@Vr~? ?DQfG*^zR߷8L h;s)l{!+*#CmFzQm±eW*5w.u/'^ÓZkM 1g:G?Dq~Ic/ IDqdӛ~XA?0dN#@uvT9"z0Us2QW9860JRJ/%GW=Hy\/o=?˱ YRAVVnчj[{tNNrխZ /*E˜\JX;Ů"=tel4C'_ qH} 52zt.Kr EKgm'&uQ݋_j䈙wS VpӋ2%ojר0o e #,RՔ~gSH^EzKQD'-Pԃ A|NZd[:9=h#]CHISP\;k'[Z`)xq=o6/.yBRX{&?><[zAWbNO.A7~ոE@& 4Qm!`W-JO&41f$dHg] ,T[(i/*oYs , ցBr .H&`,jaSyg[ Wǣ@\ Ыa2¦X$&^ҒT~fOcLZwn'f\RT*e_s3b@WV{G Rvaԁy<cօ4r[ yQ{T'P_kq"_к䢑Ny4‹jfKI~`O@ \(EfZe٘"+Fjmo#6&},̦hTJ[qHÉRL89"9ɯ2^fk)UA j4/с`E||&J'iNH^,wI9:Hx>S&1Ĵ`ju{g~Gd5En}S'9k)HrٟDkp(Rc<2ŴuAS 'I xͿiP#7)W^͑80 BJc-++{|KE {loK`o>P,m<CϑDۺ,P?⸄xΐ̪ᔽ7郩euA24A mFLIƄe66ւY_,XT/inPpCx \~P*2$X`HtU̸2gmJn(cArYT,2fP,"H "88C׈{.{nȬ38-GN}Y'?ϑMrt(f :7DC@ OZO"Yfu!gd  PCߴvΟH^L>GwgXk؁/vQLW zO|kW}MR8IWkպl΀cM†ǚ Sf_r'Zy Ğ^Xo '#X;̜"D$j7gtK+X/\Rz {tv烱Ya^uF=+@Xwg5\,#9Nipd!k^=/4RBPָ1rQ&JK]ʰcܻ|4SksT+usW //ѫi/}@]]cW1D<pϪXO$s- 俧,Ю˃a*Db69>4S,iu.s]ǰ$=x)Uz8fՄ5WeAiv y"Bvȼ5.Pn^lfN6_Q.Ic` 7)cm@ i*Daa A$H4TX?ՆF:0ٵmj2qmJ <:$櫞`Z{;р$2WD8,[rXJD_hff##[/ /N1$u"ƇU1$PE!>VKk6"'X:Q2xtQ:z96>aB_' Ji =~=c*7 GKPn|pJkyLr)ةbPi"yxEŨm i{"UX35g5n-NR/Nƴa<[Sd~:|lΡ6,ŤdIqHHS%5:gN''wcR͒y`155ҳEx '@ W= $ʌ@a+kM<$u 5CAmo0YٿF}ŗ#V@*'iVo{b~Vbf1z!Mj 2+6iGVn;*L//0 ԡnqSe4?`jA[Ⱥ @vc+( ѳ;O}XX=^@ X}\h 'x KG%Fr]QԠQHj{g:=֋3InYžs4Dҙ)R, 0 Y }N71!p]_ .l>3Gýе$NMGe?z>V#݈ 6(qTb,SuBrUAٞN]kґf}>xL+MM˂!\ݯꑱ~ 7I˂(jHV|U7u~:mIe|Q\>G.ḛڦ~]݅~c8YS=řbm)Vf[8rcqbdJa{!w7@;nYY=| gR=DE>V!d+B![\ #f~> .5`7XFoHPj5x$~uwA+{ \ \>л=-ogRKON 4" 7C+C=|rȁ %/YB BBxMBIdDZZ4M$WemicqA$wKnnyrC. cA zQ5)1"묤 6= ҔZ lH+R3X~JҔuzzv/+s@" 5ȝXt]m>hڄ!f{;J|-@yh'Z]N/FpIK<=ݳZL7>%J yGh€~ڔA5FPuN! (~<0(I~i(ly%VZ5O=g>:\}~#2ln v^,drZ/ :br͓3:ܑ\By"W#&jnhLxD;o7TBjpҕtݛa6[2='TiS*ăPACM]e4-},#i[ s畦P1|&Ilp4p ǂ$e3KX!J"eWa_4pB*%H64nw.t{Ԛ.||zfCmӅ`'3AŘ"̱L9nQ\fCy\ΉBޔM +q_JR،j>S" v-7tPIs"nܕĈ5#V4ͦk삩M(iWtrܺW} Y#=`F8͎>OSe~_ ͢'Y!#k`,Deɂ\)?b$_4 NN`."M8y9PDXȀWWb "4hР>g!_eK?kMӃng/׭:!{AɄTm@J^闡XѶ7a^dO>~-ΈQM(uvGKh{cKXz8BvERVTR?B8or0Ն;CX4c,k;V+яQLߘ΋9&nGw 82/I"~7 -#GB;"3VeHٌ'n`S1 re-d&+?aptH}@4[?Ox%`O7χZI>"]ݿf'(>SSV( R'%injԤ Ũ ZiK!-@Tc֋L' ߦ;X ms#BV&[~ZnBCLWFQi29&m 4.tSqlǃͩgrMc/3HygN͛5 v`vv>LR+l^;2z.3yhB:Kk>tl?%;zجm1-чNDo<ڷ 9G<~[b+ *m-BY)SOkk&6 B?Koip-e xEe% 8/Yt ct1SB]%u41$2Xwg=<8QF:ẠLr-8ׄNj^`()hY}C ~l{7a 9J|b>< RhL۟2˧,$q $pegC;*ZvpX $t \Vrukun(($nZJ!otx= qB6&Z$kivht+k42fm꼶)g7F8>y-RGC#$KX)&tNY;uT&xZ W~\N[~BSݤ=Y\%deG g|ʒ̶ëWNg zL0*aM~_I$`/Vފf%<sY}e`M. B5֍8#%H 6z.8 :fX3KAQ,0~2i)ҀKM_`"#?O %nq˸Ai> km B%͙ܥ.#O>kLU3.uˌU/# ]l~CVqy}p_.j⎘[;Nj;h|F:Pd4}leL'QdRg\ J ,^ A9͉̞ ̭#)Ȩź (WHa=IWS„sޗsƬtq,;߃Gk:NWnA~y40 Y]Q jd'? JϚ \AgA^Isݿ0bB*Q"ޒ!F^)ӰdxLONdGd)]dF2@Kڵu:e n ie]{UM2,&8P弾2-r8th~hHum,`Z ]`FElQ 4VhI#,s[ҙϺBFtc_j$<} m<%dhDٶo,Mnkmݶe ʻaްX)ncV>EDmeg_0 נW);k yǤI6~B+QBkJ꼔{xJt71P-}wJQ kW $ϖnQD;C> ׇ8#~Mt6 hTep/ȜkRr2: ܬF/1L?CGݳT>qL(qN)А,6!kkֱF L#Qi*I5F>b=ReáH aOw V #.|pC<Zf*$8(+/y-0?\m}.SVv>0/ ܍Tq"[Н-$~#πl8Q]r% KRT"(zWAR\DFY]DKGC\7#xcpd]E"2'k(ٕr!F1=,̴P{oH<}BkyBKSG"䡇vZMxñq_tb1}DLU.GӘHZ斠{b"F|f~Q|d=SG$\k,+mT.E'c̗0ڤɸgGB%ψjswӛM~gg D: f{+6^/ovx &dyuڸ9p*tvK(㺉Jr3 { RUm}lRQ6V'i;aM]& ={Tʒnkbi"H}ŁwӸ94uYi ]1t= %![I"t墓+T Xj•GP)G˱26@ a4HkTvQ_ct)2v6U' r(=wz}[C@ N۵8h^0j@xTO! u(si DbBe( jX)P"*ciYtKhgSP R+aX vqv 8Q1REzBG{=}*;(L-g]p/V$x+S6`8bT/2>\z!L7N%b-7%jwSC";h3lXC#ɩM@w iH} `w g5v{ LuPoFlZ5TE? 'PNeD!>+[oUXXؖ,8?V$I01$B̰\Jp#wd&@<葋 E -n{q7xߓ$Q媦56Eh-g{Y\6ѳ+ENA 3+K!<^={P̳s쉻^2Q=Z4E>X!C^8rѝ?vPtD׷6r[>x@'xx>'z^}T_(͡jTlrMdF3+)