criu-3.18.1.3-1.vz7>  j|ee  }Dͭ* ,,E<8Q~1!?!d  @  @Xn    & (0DX`   %4 (89 :nF!G!<H!DI!L\!P]!X^!xc!yd!e!f!!Ccriu3.18.1.31.vz7Tool for Checkpoint/Restore in User-spacecriu is the user-space part of Checkpoint/Restore in User-space (CRIU), a project to implement checkpoint/restore functionality for Linux in user-space.edsbuilder5.eng.sw.ru3VirtuozzoVirtuozzoGPLv2Virtuozzo (http://www.virtuozzo.com/support/)System Environment/Basecriu-3.18.1.3.tar.bz2http://criu.org/linuxx86_642Q!5ed]rJ@]g@]R@]J@]D%]:@]1],j],j]'$]G@]@]@] #]:\t@\"\@\@\\\@\\,@\,@\\@\7\@\\@\e\\@\@\y\v{\\\N\2\@\I[H[_[@[[[[ͻ[[[@[F[][#@[@[["@[-[@[W[S @[L[?Y[>@[6@[4[3|@[0@[,[+@[(@[#@[#@[5@[ @ZnZnZZ@Zb@Z@ZZ3@ZZЛZ̧@Zľ@Zľ@Z@ZZZZ@ZZ Z$Z|;Zo Z]@Z\ZV@ZTZP@ZP@Z@@Z@X>@X<@X8'X8'X5X43@XI@XkW@W1@W 3.18.0.24VZ Auto Builder 3.18.0.22VZ Auto Builder 3.18.0.21VZ Auto Builder 3.18.0.20VZ Auto Builder 3.18.0.19VZ Auto Builder 3.18.0.18VZ Auto Builder 3.18.0.17VZ Auto Builder 3.18.0.16VZ Auto Builder 3.18.0.15VZ Auto Builder 3.18.0.14VZ Auto Builder 3.18.0.13VZ Auto Builder 3.18.0.12VZ Auto Builder 3.18.0.11VZ Auto Builder 3.18.0.10VZ Auto Builder 3.18.0.9VZ Auto Builder 3.18.0.8VZ Auto Builder 3.18.0.6VZ Auto Builder 3.18.0.5VZ Auto Builder 3.18.0.4VZ Auto Builder 3.18.0.3VZ Auto Builder 3.18.0.2VZ Auto Builder 3.18.0.1VZ Auto Builder 3.15.5.3VZ Auto Builder 3.15.5.2VZ Auto Builder 3.15.5.1VZ Auto Builder 3.15.4.16VZ Auto Builder 3.15.4.15VZ Auto Builder 3.15.4.14VZ Auto Builder 3.15.4.13VZ Auto Builder 3.15.4.12VZ Auto Builder 3.15.4.11VZ Auto Builder 3.15.4.10VZ Auto Builder 3.15.4.9VZ Auto Builder 3.15.4.8VZ Auto Builder 3.15.4.7VZ Auto Builder 3.15.4.6VZ Auto Builder 3.15.4.5VZ Auto Builder 3.15.4.4VZ Auto Builder 3.15.4.3VZ Auto Builder 3.15.4.2VZ Auto Builder 3.15.4.1VZ Auto Builder 3.15.3.12VZ Auto Builder 3.15.3.11VZ Auto Builder 3.15.3.10VZ Auto Builder 3.15.3.9VZ Auto Builder 3.15.3.8VZ Auto Builder 3.15.3.7VZ Auto Builder 3.15.3.6VZ Auto Builder 3.15.3.5VZ Auto Builder 3.15.3.4VZ Auto Builder 3.15.3.3VZ Auto Builder 3.15.3.2VZ Auto Builder 3.15.3.1VZ Auto Builder 3.15.2.9VZ Auto Builder 3.15.2.8VZ Auto Builder 3.15.2.7VZ Auto Builder 3.15.2.6VZ Auto Builder 3.15.2.5VZ Auto Builder 3.15.2.3VZ Auto Builder 3.15.2.2VZ Auto Builder 3.15.2.1VZ Auto Builder 3.15.1.25VZ Auto Builder 3.15.1.23VZ Auto Builder 3.15.1.22VZ Auto Builder 3.15.1.21VZ Auto Builder 3.15.1.20VZ Auto Builder 3.15.1.19VZ Auto Builder 3.15.1.18VZ Auto Builder 3.15.1.17VZ Auto Builder 3.15.1.15VZ Auto Builder 3.15.1.14VZ Auto Builder 3.15.1.13VZ Auto Builder 3.15.1.10VZ Auto Builder 3.15.1.7VZ Auto Builder 3.15.1.6VZ Auto Builder 3.15.1.5VZ Auto Builder 3.15.0.18VZ Auto Builder 3.15.0.17VZ Auto Builder 3.15.0.16VZ Auto Builder 3.15.0.15VZ Auto Builder 3.15.0.14VZ Auto Builder 3.15.0.13VZ Auto Builder 3.15.0.12VZ Auto Builder 3.15.0.11VZ Auto Builder 3.15.0.10VZ Auto Builder 3.15.0.9VZ Auto Builder 3.15.0.8VZ Auto Builder 3.15.0.7VZ Auto Builder 3.15.0.6VZ Auto Builder 3.15.0.5VZ Auto Builder 3.12.6.3VZ Auto Builder 3.12.6.2VZ Auto Builder 3.12.6.1Denis Silakov 3.12.3.5-2VZ Auto Builder 3.12.3.5VZ Auto Builder 3.12.3.4VZ Auto Builder 3.12.3.3VZ Auto Builder 3.12.3.2VZ Auto Builder 3.12.2.11VZ Auto Builder 3.12.2.10VZ Auto Builder 3.12.2.8VZ Auto Builder 3.12.2.7VZ Auto Builder 3.12.2.6VZ Auto Builder 3.12.2.5VZ Auto Builder 3.12.2.4Cyrill Gorcunov 3.12.2.3Cyrill Gorcunov 3.12.2.2Cyrill Gorcunov 3.12.2.1VZ Auto Builder 3.12.1.36VZ Auto Builder 3.12.1.35Cyrill Gorcunov 3.12.1.34VZ Auto Builder 3.12.1.33VZ Auto Builder 3.12.1.32VZ Auto Builder 3.12.1.30Cyrill Gorcunov 3.12.1.29VZ Auto Builder 3.12.1.28VZ Auto Builder 3.12.1.27VZ Auto Builder 3.12.1.25VZ Auto Builder 3.12.1.24VZ Auto Builder 3.12.1.23VZ Auto Builder 3.12.1.22VZ Auto Builder 3.12.1.21VZ Auto Builder 3.12.1.20Cyrill Gorcunov 3.12.1.19Cyrill Gorcunov 3.12.1.18VZ Auto Builder 3.12.1.17VZ Auto Builder 3.12.1.15Cyrill Gorcunov 3.12.1.14Cyrill Gorcunov 3.12.1.13Cyrill Gorcunov 3.12.1.12Cyrill Gorcunov 3.12.1.11Cyrill Gorcunov 3.12.0.10Cyrill Gorcunov 3.12.0.9Cyrill Gorcunov 3.12.0.8Denis Silakov 3.12.0.7-2Cyrill Gorcunov 3.12.0.7Cyrill Gorcunov 3.12.0.6Cyrill Gorcunov 3.12.0.5Cyrill Gorcunov 3.12.0.4Cyrill Gorcunov 3.12.0.3Cyrill Gorcunov 3.12.0.2Cyrill Gorcunov 3.12.0.1Cyrill Gorcunov 3.11.1.5Cyrill Gorcunov 3.11.1.4Cyrill Gorcunov 3.11.1.3Cyrill Gorcunov 3.11.1.2Cyrill Gorcunov 3.11.1.1Cyrill Gorcunov 3.11.0.16Cyrill Gorcunov 3.11.0.15Cyrill Gorcunov 3.11.0.14Cyrill Gorcunov 3.11.0.13Cyrill Gorcunov 3.11.0.12Cyrill Gorcunov 3.11.0.11Cyrill Gorcunov 3.11.0.10Cyrill Gorcunov 3.11.0.9Cyrill Gorcunov 3.11.0.8Cyrill Gorcunov 3.11.0.7Cyrill Gorcunov 3.11.0.6Cyrill Gorcunov 3.11.0.5Cyrill Gorcunov 3.11.0.4Cyrill Gorcunov 3.11.0.3Cyrill Gorcunov 3.11.0.2Cyrill Gorcunov 3.11.0.1Cyrill Gorcunov 3.10.0.21Cyrill Gorcunov 3.10.0.20Cyrill Gorcunov 3.10.0.19Cyrill Gorcunov 3.10.0.18Cyrill Gorcunov 3.10.0.17Cyrill Gorcunov 3.10.0.16Cyrill Gorcunov 3.10.0.15Cyrill Gorcunov 3.10.0.14Cyrill Gorcunov 3.10.0.13Cyrill Gorcunov 3.10.0.12Cyrill Gorcunov 3.10.0.11Cyrill Gorcunov 3.10.0.10Cyrill Gorcunov 3.10.0.9Cyrill Gorcunov 3.10.0.8Cyrill Gorcunov 3.10.0.7Cyrill Gorcunov 3.10.0.6Cyrill Gorcunov 3.10.0.5Cyrill Gorcunov 3.10.0.4Cyrill Gorcunov 3.10.0.3Cyrill Gorcunov 3.10.0.2Cyrill Gorcunov 3.10.0.1Cyrill Gorcunov 3.8.0.33Cyrill Gorcunov 3.8.0.32Cyrill Gorcunov 3.8.0.31Cyrill Gorcunov 3.8.0.30Cyrill Gorcunov 3.8.0.29Cyrill Gorcunov 3.8.0.28Cyrill Gorcunov 3.8.0.27Cyrill Gorcunov 3.8.0.26Cyrill Gorcunov 3.8.0.25Cyrill Gorcunov 3.8.0.24Cyrill Gorcunov 3.8.0.23Cyrill Gorcunov 3.8.0.22Cyrill Gorcunov 3.8.0.21Cyrill Gorcunov 3.8.0.20Cyrill Gorcunov 3.8.0.19Cyrill Gorcunov 3.8.0.18Cyrill Gorcunov 3.8.0.17Cyrill Gorcunov 3.8.0.16Cyrill Gorcunov 3.8.0.15Cyrill Gorcunov 3.8.0.14Cyrill Gorcunov 3.8.0.13Cyrill Gorcunov 3.8.0.12Cyrill Gorcunov 3.8.0.11Kirill Tkhai 3.8.0.10Kirill Tkhai 3.8.0.9Kirill Tkhai 3.8.0.8Kirill Tkhai 3.8.0.7Cyrill Gorcunov 3.8.0.6Kirill Tkhai 3.8.0.5Cyrill Gorcunov 3.8.0.4Cyrill Gorcunov 3.8.0.3Cyrill Gorcunov 3.8.0.2Cyrill Gorcunov 3.8.0.1Cyrill Gorcunov 3.4.0.202Cyrill Gorcunov 3.4.0.39Cyrill Gorcunov 3.4.0.201Kirill Tkhai 3.4.0.38Kirill Tkhai 3.4.0.37Kirill Tkhai 3.4.0.36Cyrill Gorcunov 3.4.0.35Kirill Tkhai 3.4.0.34Cyrill Gorcunov 3.4.0.33Kirill Tkhai 3.4.0.32Cyrill Gorcunov 3.4.0.31Cyrill Gorcunov 3.4.0.30Kirill Tkhai 3.4.0.29Kirill Tkhai 3.4.0.28Kirill Tkhai 3.4.0.27Cyrill Gorcunov 3.4.0.26Cyrill Gorcunov 3.4.0.25Cyrill Gorcunov 3.4.0.24Cyrill Gorcunov 3.4.0.23Cyrill Gorcunov 3.4.0.22Cyrill Gorcunov 3.4.0.21Cyrill Gorcunov 3.4.0.20Cyrill Gorcunov 3.4.0.19Cyrill Gorcunov 3.4.0.18Cyrill Gorcunov 3.4.0.17Cyrill Gorcunov 3.4.0.16Cyrill Gorcunov 3.4.0.15Cyrill Gorcunov 3.4.0.14Kirill Tkhai 3.4.0.13Kirill Tkhai 3.4.0.12Cyrill Gorcunov 3.4.0.11Kirill Tkhai 3.4.0.10Cyrill Gorcunov 3.4.0.9Kirill Tkhai 3.4.0.9Cyrill Gorcunov 3.4.0.8Cyrill Gorcunov 3.4.0.7Cyrill Gorcunov 3.4.0.6Cyrill Gorcunov 3.4.0.5Cyrill Gorcunov 3.4.0.4Cyrill Gorcunov 3.4.0.3Cyrill Gorcunov 3.4.0.2Cyrill Gorcunov 3.4.0.1Cyrill Gorcunov 3.0.0.202Cyrill Gorcunov 3.0.0.201Cyrill Gorcunov 3.0.0.37Cyrill Gorcunov 3.0.0.35Cyrill Gorcunov 3.0.0.34Cyrill Gorcunov 3.0.0.33Cyrill Gorcunov 3.0.0.32Cyrill Gorcunov 3.0.0.31Cyrill Gorcunov 3.0.0.30Dmitry Safonov 3.0.0.29Cyrill Gorcunov 3.0.0.28Cyrill Gorcunov 3.0.0.27Cyrill Gorcunov 3.0.0.26Dmitry Safonov 3.0.0.25Dmitry Safonov 3.0.0.24Dmitry Safonov 3.0.0.23Cyrill Gorcunov 3.0.0.22Dmitry Safonov 3.0.0.21Cyrill Gorcunov 3.0.0.20Dmitry Safonov 3.0.0.19Dmitry Safonov 3.0.0.18Dmitry Safonov 3.0.0.17Dmitry Safonov 3.0.0.16Dmitry Safonov 3.0.0.15Dmitry Safonov 3.0.0.14Cyrill Gorcunov 3.0.0.13Dmitry Safonov 3.0.0.12Andrey Bondrov 3.0.0.11-3Andrey Bondrov 3.0.0.11-2Dmitry Safonov 3.0.0.11Dmitry Safonov 3.0.0.10Dmitry Safonov 3.0.0.9Dmitry Safonov 3.0.0.8Dmitry Safonov 3.0.0.7Dmitry Safonov 3.0.0.6Cyrill Gorcunov 3.0.0.5Cyrill Gorcunov 3.0.0.4Dmitry Safonov 3.0.0.3Dmitry Safonov 3.0.0.2Cyrill Gorcunov 3.0.0.1Cyrill Gorcunov 3.0.0.1Cyrill Gorcunov 2.10.0.49Cyrill Gorcunov 2.10.0.48Cyrill Gorcunov 2.10.0.47Cyrill Gorcunov 2.10.0.46Cyrill Gorcunov 2.10.0.45Cyrill Gorcunov 2.10.0.44Cyrill Gorcunov 2.10.0.43Cyrill Gorcunov 2.10.0.42Cyrill Gorcunov 2.10.0.41Cyrill Gorcunov 2.10.0.40Cyrill Gorcunov 2.10.0.39Cyrill Gorcunov 2.10.0.38Cyrill Gorcunov 2.10.0.37Cyrill Gorcunov 2.10.0.36Cyrill Gorcunov 2.10.0.35Cyrill Gorcunov 2.10.0.34Cyrill Gorcunov 2.10.0.33Cyrill Gorcunov 2.10.0.32Cyrill Gorcunov 2.10.0.31Cyrill Gorcunov 2.10.0.30Cyrill Gorcunov 2.10.0.29Cyrill Gorcunov 2.10.0.28Cyrill Gorcunov 2.10.0.27Cyrill Gorcunov 2.10.0.26Cyrill Gorcunov 2.10.0.25Cyrill Gorcunov 2.10.0.24Cyrill Gorcunov 2.10.0.23Cyrill Gorcunov 2.10.0.22Cyrill Gorcunov 2.10.0.21Cyrill Gorcunov 2.10.0.20Cyrill Gorcunov 2.10.0.19Cyrill Gorcunov 2.10.0.18Cyrill Gorcunov 2.10.0.17Cyrill Gorcunov 2.10.0.16Cyrill Gorcunov 2.10.0.15Cyrill Gorcunov 2.10.0.14Cyrill Gorcunov 2.10.0.13Cyrill Gorcunov 2.10.0.12Cyrill Gorcunov 2.10.0.11Cyrill Gorcunov 2.10.0.10Cyrill Gorcunov 2.10.0.9Cyrill Gorcunov 2.10.0.8Cyrill Gorcunov 2.10.0.7Cyrill Gorcunov 2.10.0.6Cyrill Gorcunov 2.10.0.5Cyrill Gorcunov 2.10.0.4Cyrill Gorcunov 2.10.0.3Cyrill Gorcunov 2.10.0.2Cyrill Gorcunov 2.10.0.1Cyrill Gorcunov 2.8.0.15Cyrill Gorcunov 2.8.0.14Cyrill Gorcunov 2.8.0.13Konstantin Volkov - 2.8.0.12-2Cyrill Gorcunov 2.8.0.12Cyrill Gorcunov 2.8.0.11Cyrill Gorcunov 2.8.0.10Cyrill Gorcunov 2.8.0.9Cyrill Gorcunov 2.8.0.8Cyrill Gorcunov 2.8.0.7Cyrill Gorcunov 2.8.0.6Cyrill Gorcunov 2.8.0.5Cyrill Gorcunov 2.8.0.4Cyrill Gorcunov 2.8.0.3Cyrill Gorcunov 2.8.0.2Cyrill Gorcunov 2.8.0.1Cyrill Gorcunov 2.5.0.23Cyrill Gorcunov 2.5.0.22Cyrill Gorcunov 2.5.0.21Cyrill Gorcunov 2.5.0.20Cyrill Gorcunov 2.5.0.19Cyrill Gorcunov 2.5.0.18Cyrill Gorcunov 2.5.0.17Cyrill Gorcunov 2.5.0.16Cyrill Gorcunov 2.5.0.15Cyrill Gorcunov 2.5.0.14Cyrill Gorcunov 2.5.0.13Cyrill Gorcunov 2.5.0.12Cyrill Gorcunov 2.5.0.11Cyrill Gorcunov 2.5.0.10Cyrill Gorcunov 2.5.0.9Cyrill Gorcunov 2.5.0.8Cyrill Gorcunov 2.5.0.7Cyrill Gorcunov 2.5.0.6Cyrill Gorcunov 2.5.0.5Cyrill Gorcunov 2.5.0.4Cyrill Gorcunov 2.5.0.3Cyrill Gorcunov 2.5.0.2Cyrill Gorcunov 2.5.0.1Cyrill Gorcunov 2.4.0.6Cyrill Gorcunov 2.4.0.5Dmitry Safonov 2.4.0.4Cyrill Gorcunov 2.4.0.3Cyrill Gorcunov 2.4.0.2Cyrill Gorcunov 2.4.0.1Cyrill Gorcunov 2.1.1.5Cyrill Gorcunov 2.1.1.4Cyrill Gorcunov 2.1.1.3Cyrill Gorcunov 2.1.1.2Cyrill Gorcunov 2.1.1.1Cyrill Gorcunov 2.1.0.49Cyrill Gorcunov 2.1.0.48Cyrill Gorcunov 2.1.0.47Cyrill Gorcunov 2.1.0.46Cyrill Gorcunov 2.1.0.45Cyrill Gorcunov 2.1.0.44Cyrill Gorcunov 2.1.0.43Cyrill Gorcunov 2.1.0.42Cyrill Gorcunov 2.1.0.41Cyrill Gorcunov 2.1.0.40Cyrill Gorcunov 2.1.0.39Cyrill Gorcunov 2.1.0.38Cyrill Gorcunov 2.1.0.37Cyrill Gorcunov 2.1.0.36Cyrill Gorcunov 2.1.0.35Cyrill Gorcunov 2.1.0.34Cyrill Gorcunov 2.1.0.33Cyrill Gorcunov 2.1.0.32Cyrill Gorcunov 2.1.0.31Cyrill Gorcunov 2.1.0.30Cyrill Gorcunov 2.1.0.29Cyrill Gorcunov 2.1.0.28Cyrill Gorcunov 2.1.0.27Cyrill Gorcunov 2.1.0.26Cyrill Gorcunov 2.1.0.25Cyrill Gorcunov 2.1.0.24Cyrill Gorcunov 2.1.0.23Cyrill Gorcunov 2.1.0.22Cyrill Gorcunov 2.1.0.21Cyrill Gorcunov 2.1.0.20Cyrill Gorcunov 2.1.0.19Cyrill Gorcunov 2.1.0.18Cyrill Gorcunov 2.1.0.17Cyrill Gorcunov 2.1.0.16Cyrill Gorcunov 2.1.0.15Cyrill Gorcunov 2.1.0.14Cyrill Gorcunov 2.1.0.13Cyrill Gorcunov 2.1.0.12Cyrill Gorcunov 2.1.0.11Cyrill Gorcunov 2.1.0.10Cyrill Gorcunov 2.1.0.9Cyrill Gorcunov 2.1.0.8Cyrill Gorcunov 2.1.0.7Cyrill Gorcunov 2.1.0.6Cyrill Gorcunov 2.1.0.5Cyrill Gorcunov 2.1.0.4Cyrill Gorcunov 2.1.0.3Cyrill Gorcunov 2.1.0.1Cyrill Gorcunov 2.0.0.8Cyrill Gorcunov 2.0.0.7Cyrill Gorcunov 2.0.0.6Cyrill Gorcunov 2.0.0.5Cyrill Gorcunov 2.0.0.4Cyrill Gorcunov 2.0.0.3Cyrill Gorcunov 2.0.0.2Cyrill Gorcunov 2.0.0.1Cyrill Gorcunov 1.8.0.15Cyrill Gorcunov 1.8.0.14Cyrill Gorcunov 1.8.0.13Cyrill Gorcunov 1.8.0.12Cyrill Gorcunov 1.8.0.11Cyrill Gorcunov 1.8.0.10Cyrill Gorcunov 1.8.0.9Cyrill Gorcunov 1.8.0.8Cyrill Gorcunov 1.8.0.7Cyrill Gorcunov 1.8.0.6Dmitry Mishin 1.8.0.3Nikita Spiridonov 1.8-6Nikita Spiridonov 1.8-5Nikita Spiridonov 1.8-4Nikita Spiridonov 1.8-3Nikita Spiridonov 1.8-2Nikita Spiridonov 1.8-1.rc1Nikita Spiridonov 1.7.2-7Nikita Spiridonov 1.7.2-6Nikita Spiridonov 1.7.2-5Nikita Spiridonov 1.7.2-4Nikita Spiridonov 1.7.2-3Nikita Spiridonov 1.7.2-2Nikita Spiridonov 1.7.2Nikita Spiridonov 1.7.1-2Nikita Spiridonov 1.7.1Nikita Spiridonov 1.7-2Nikita Spiridonov 1.7Nikita Spiridonov 1.6.1Nikita Spiridonov - 1.6-2Nikita Spiridonov - 1.6Nikita Spiridonov - 1.5.1-2Andrew Vagin - 1.5.1Adrian Reber - 1.4-1Adrian Reber - 1.3.1-1Adrian Reber - 1.3-1Fedora Release Engineering - 1.2-5Andrew Vagin - 1.2-4Andrew Vagin - 1.2-3Fedora Release Engineering - 1.2-2Adrian Reber - 1.2-1Adrian Reber - 1.1-4Andrew Vagin - 1.0-3Andrew Vagin - 1.0-2Andrew Vagin - 1.0-1Andrew Vagin - 0.8-1Andrew Vagin - 0.7-1Fedora Release Engineering - 0.6-5Andrew Vagin - 0.6-3Andrew Vagin - 0.6-3Andrew Vagin - 0.6-2Adrian Reber - 0.6-1Adrian Reber - 0.5-1Adrian Reber - 0.4-1Fedora Release Engineering - 0.3-4Adrian Reber - 0.3-3Adrian Reber - 0.3-2Adrian Reber - 0.3-1Adrian Reber - 0.2-2Adrian Reber - 0.2-1- spfs: do not umount original mount (Pavel Tikhomirov ) (#PSBM-147180)- spfs: do mount request from mount namespace of nfs mount (Pavel Tikhomirov ) (#PSBM-147276) - mount-v2: bind dev proc and sysfs for spfs into restored mount namespace (Pavel Tikhomirov ) (#PSBM-147276)- mount: skip source check for autofs mounts in bindmount search (Pavel Tikhomirov ) (#PSBM-148081)- Revert "soccr: do not disable tcp repair when sending unsent data" (Pavel Tikhomirov ) (#PSBM-147346 #PSBM-148050)- sk-unix: ignore closed or non-empty in-flight sockets (Pavel Tikhomirov ) (#PSBM-147983)- soccr: do not disable tcp repair when sending unsent data (Pavel Tikhomirov ) (#PSBM-147346)- filesystems: do binfmt_misc_restore only once (Pavel Tikhomirov ) (#PSBM-147930)- mount-v2: copy flags to wide mount helpers (Pavel Tikhomirov ) (#PSBM-148010) - overlayfs: fix error handling in __overlayfs_mount (Pavel Tikhomirov )- zdtm: add overlayfs_nestedns test (Pavel Tikhomirov ) (#PSBM-147254) - overlayfs: do mount in mntns of lower/upper/workdir mounts (Pavel Tikhomirov ) (#PSBM-147254) - mount-v2: add remove_plain_mountpoint helper (Pavel Tikhomirov ) (#PSBM-147254) - mount-v2: export bind_plain_to_other_mntns helper (Pavel Tikhomirov ) (#PSBM-147254) - mount-v2: export create_plain_mountpoint helper (Pavel Tikhomirov ) (#PSBM-147254) - overlayfs: replace ret with exit_code in __overlayfs_mount (Pavel Tikhomirov ) (#PSBM-147254) - overlayfs: remove cwd recovery in overlayfs_mount (Pavel Tikhomirov ) (#PSBM-147254) - overlayfs: call overlayfs_mount in child process (Pavel Tikhomirov ) (#PSBM-147254)- vz7: systemd-autofs-restart.sh: fix error condition check (Pavel Tikhomirov ) (#PSBM-147268)- zdtm: add mount_complex_sharing02 test (Pavel Tikhomirov ) (#PSBM-147120) - mount: add wide mounts for sharing groups where required (Pavel Tikhomirov ) (#PSBM-147120) - mount: search covering mounts for sharing groups (Pavel Tikhomirov ) (#PSBM-147120) - mount: search covering mounts for each superblock (Pavel Tikhomirov ) (#PSBM-147120) - mount: introduce covering mounts functionality (Pavel Tikhomirov ) (#PSBM-147120) - mount-v2: introduce custom detect_is_dir (Pavel Tikhomirov ) (#PSBM-147120) - mount: introduce helper mount types (Pavel Tikhomirov ) (#PSBM-147120) - mount-v2: rework can_mount_now_v2 (Pavel Tikhomirov ) (#PSBM-147120)- zdtm: add scm10 test for scm sent unix sk with closed sender (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: resolve fake queuers vs scm fds in unix sockets fallacy (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: order unixsk sent to other unixsk after it (Pavel Tikhomirov ) (#PSBM-143751)- jenkins/zdtm: dont run tests using zdtmtst cgroup concurrently (Pavel Tikhomirov ) (#PSBM-147000) - cgroupd: unblock SIGTERM as it is needed to stop cgroupd (Pavel Tikhomirov ) (#PSBM-147000) - jenkins/zdtm: use --mntns-compat-mode option without --no- (Pavel Tikhomirov ) (#PSBM-147000) - Revert python modules changes. (Artem Vasiliev )- build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - vz: fix multiple build problems related to python (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - vz: fix multiple build problems related to python (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- Revert "crit: fix compatibility with Python 3.12" (Pavel Tikhomirov ) - vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber ) - Fix typo (Artem Vasiliev ) - Add amdgpu man (Artem Vasiliev ) - Revert SPEC to use python2 (artem.vasiliev ) - Set proper version for pip PSBM-144416 (artem.vasiliev ) - Adding python-pip for PSBM-144416 (Artem Vasiliev )- Revert "crit: fix compatibility with Python 3.12" (Pavel Tikhomirov ) - vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber ) - Revert SPEC to use python2 (artem.vasiliev ) - Set proper version for pip PSBM-144416 (artem.vasiliev ) - Adding python-pip for PSBM-144416 (Artem Vasiliev )- vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber ) - Set proper version for pip PSBM-144416 (artem.vasiliev ) - Adding python-pip for PSBM-144416 (Artem Vasiliev )- vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber ) - Adding python-pip for PSBM-144416 (Artem Vasiliev )- vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625)- zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261)- test: remove test for LOCK_MAND flock (Adrian Reber ) (#PSBM-144187) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - zdtm/ve_flavor: create cgroup namespace for ve if available (Pavel Tikhomirov ) (#PSBM-144187) - zdtm/ve_flavor: enter nested rdma cgroup if available for vz9 (Pavel Tikhomirov ) (#PSBM-144187) - zdtm/ve_flavor: set ve.iptables_mask only if available (Pavel Tikhomirov ) (#PSBM-144187) - kerndat: check for cgroup kmem limit available (Pavel Tikhomirov ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - vz7/vz9: update version and targets.list for u20 (Pavel Tikhomirov ) - zdtm: bring back scm07 and scm08 (Pavel Tikhomirov )- net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902)- zdtm: Add test for IP_PKTINFO sock option (Pavel Tikhomirov ) (#PSBM-142872) - sk-inet: support of SOL_IP, IP_PKTINFO option (Pavel Tikhomirov ) (#PSBM-142872)- pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov )- cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679)- zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - test: fix test compilation on rawhide (Adrian Reber )- cr-restore: leave veX cgroup on error path (Alexander Mikhalitsyn ) (#PSBM-141122)- zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) (#PSBM-140415) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) (#PSBM-140414)- sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953)- irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177)- action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439)- sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - mount: remove O_DIRECTORY flag for mount opening helpers (Andrey Zhadchenko ) (#PSBM-139948)- sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko )- zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: distinguish cleanup of leftover sockets from early bind (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use ghost approach for connecting to overmounted sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: rename all references to bindmounts to early bind (Andrey Zhadchenko ) (#PSBM-135398) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - mount-v2: separate bind and bindmount stages for unix bindmounted sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - mount-v2: restore unix sockets and bindmounts in correct mntns (Andrey Zhadchenko ) (#PSBM-135398) - mount-v2: separate creation and assembling of mount namespaces (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398)- vz9: update targets.list for beta (Pavel Tikhomirov ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) (#PSBM-135201) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - Fix gcc9 build failures (Jeff Law )- net: run iptables-legacy binaries for VZ9 (Alexander Mikhalitsyn ) (#PSBM-137826)- cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - vz7/vz9: update version and targets.list for u19 (Pavel Tikhomirov )- mount-v2: fixup resolve_shared_mounts_v2 (Pavel Tikhomirov ) - zdtm: make new overmounted_ tests always run with mount-v2 (Pavel Tikhomirov ) (#PSBM-137789)- zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834)- cgroup: fix wrong mixed paths in info message when preparing properties (Pavel Tikhomirov ) (#PSBM-136411) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: fix cwd path freeing (Yuriy Vasiliev ) - zdtm: fix cgroup_freezer test compiler warnings (Yuriy Vasiliev )- rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408)- zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663)- mount-v2: fix children-parent relative mountpoint checking (Pavel Tikhomirov )- pie/restorer: fix compilation with DEBUG=1 (Andrey Zhadchenko ) (#PSBM-135350) - x86/asm: fix compile error in bitops.h (anatasluo ) (#PSBM-135350) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko )- zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko )- config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480)- targets.list: add vz9 into build targets (Pavel Tikhomirov ) - prctl/start_time: change names in accordance with vz9 kernel change (Pavel Tikhomirov ) - zdtm: fix ve flavor for vz7 (Andrey Zhadchenko ) (#PSBM-134129)- net: reenable vxlan nla flags (Andrey Zhadchenko ) (#PSBM-123378) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378)- mount: fix declaration of root_yard_mp and mnt_roots (Cyrill Gorcunov ) - mount-v2: fix nested_pidns_procs declaration (Cyrill Gorcunov ) - vz7/vz8: update version and targets.list for u17 (Pavel Tikhomirov ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568)- cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267)- cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412)- compel/log: Provide %u specifier parsing (Dmitry Safonov ) (#PSBM-131412) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) (#PSBM-131412) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) (#PSBM-131412)- zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) (#PSBM-131580) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) (#PSBM-131580) - sockets: c/r bufer size locks (Pavel Tikhomirov ) (#PSBM-131580) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) (#PSBM-131580) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) (#PSBM-131580) - crit: fix error on memfd files parsing (Pavel Tikhomirov )- zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354)- zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507)- zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849)- mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - zdtm: fix uninitialized lenght provided to getsockopt (Pavel Tikhomirov ) (#PSBM-129482) - vz7/vz8: update version and targets.list for u17 (Pavel Tikhomirov )- PSBM-122095 (Andrey Zhadchenko ) (#PSBM-122095) - PSBM-122095 (Andrey Zhadchenko ) (#PSBM-122095)- PSBM-125002 (Pavel Tikhomirov ) (#PSBM-125002)- PSBM-123431 (Pavel Tikhomirov ) (#PSBM-123431)- PSBM-124263 (Andrey Zhadchenko ) (#PSBM-124263)- PSBM-123431 (Valeriy Vdovin ) (#PSBM-123431)- PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668)- PSBM-122120 (Andrey Zhadchenko ) (#PSBM-122120)- PSBM-122418 (Andrey Zhadchenko ) (#PSBM-122418) - PSBM-122418 (Andrey Zhadchenko ) (#PSBM-122418) - PSBM-122418 (Andrey Zhadchenko ) (#PSBM-122418) - PSBM-122418 (Andrey Zhadchenko ) (#PSBM-122418)- PSBM-125086 (Valeriy Vdovin ) (#PSBM-125086)- PSBM-123431 (Valeriy Vdovin ) (#PSBM-123431)- PSBM-124623 (Pavel Tikhomirov ) (#PSBM-124623) - PSBM-124538 (Pavel Tikhomirov ) (#PSBM-124538) - PSBM-124538 (Pavel Tikhomirov ) (#PSBM-124538)* Fri Jan 15 2021 VZ Auto Builder 3.15.1.9- vz7/vz8: fix stupid targets.list copy-paste missprint (Pavel Tikhomirov ) (#PSBM-123769)- vz7/vz8: add targets.list to build both criu versions from same code repo (Pavel Tikhomirov ) (#PSBM-123769)- vz7/vz8: add targets.list to build both criu versions from same code repo (Pavel Tikhomirov ) (#PSBM-123769)- plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422)- files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422)- mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531)- autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727)- zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - criu.spec: explictily provide criu version to make (Pavel Tikhomirov )- build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov )- ve/beancounter: don't unlimit beancounter cgroup if it does not exist (Pavel Tikhomirov ) (#PSBM-123769) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769)- zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - zdtm/vz8: disable mnt_tracefs test (Pavel Tikhomirov ) (#PSBM-123769) - vxlan: lets temporary disable all NLA_FLAG entries as they were get/set wrong (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - mount: fix errno handling in mount_and_open_binfmt_misc (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: openvswitch00: replace snprintf with ssprintf (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm/lib: print errno for mount error (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - sk-unix: fixup snprintf truncation gcc warning (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov )- cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648)- infect: print stack for D state process (Pavel Tikhomirov ) (#PSBM-122979)- restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162)- servicefd: don't cleanup new fd in case it is same as old one (Pavel Tikhomirov ) (#PSBM-122957) - zdtm: overlay: use ssprintf instead of snprintf (Alexander Mikhalitsyn ) (#PSBM-122375) - zdtm: pidns03: do lazy umount /proc (Alexander Mikhalitsyn ) (#PSBM-122505) - zdtm: fix segfault in several tests on new GCC (unaligned stack) (Alexander Mikhalitsyn ) (#PSBM-120728)- zdtm: add second fifo_upon_unix test (Pavel Tikhomirov ) (#PSBM-106582) - zdtm: add fifo upon unix socket test case (Pavel Tikhomirov ) (#PSBM-106582) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) (#PSBM-106582) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Pavel Tikhomirov ) (#PSBM-106582) - files-reg: rework strip_deleted (Pavel Tikhomirov ) (#PSBM-106582) - zdtm: fix overlayfs_fsnotify tests (Pavel Tikhomirov ) (#PSBM-122444) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov )* Tue Nov 17 2020 Denis Silakov 3.15.0.4 - zdtm: enable tty-inherit tests (Pavel Tikhomirov ) (#PSBM-121533) - mount: ignore root change in cgroup mounts in case of container rename (Pavel Tikhomirov ) (#PSBM-108126) - spfs: fix usage of new_cg_root_get (Pavel Tikhomirov ) (#PSBM-108126) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - mounts-v2: fallback to compat mount engine in case of old kernel (Pavel Tikhomirov ) (#PSBM-121995) - kerndat: Check for mount MS_SET_GROUP availability (Pavel Tikhomirov ) (#PSBM-121995) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: don't mount overlayfs in unprivileged user namespace (Pavel Tikhomirov ) (#PSBM-121284) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) (#PSBM-104289) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) (#PSBM-96308) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: fix compilation from vzt-cpt (Andrey Zhadchenko ) (#PSBM-106860) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - mounts-v2: add new criu optioin --mounts-compat and drop --mounts-v2 (Pavel Tikhomirov ) (#PSBM-106066) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in unix_sk_entry (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in criu_opts (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz/images: add vz_ prefix to vz specific fields in mnt_entry (Pavel Tikhomirov ) - vz/images: add VZ_ prefix to NSFS fstype (Pavel Tikhomirov ) - vz/images: add vz_ prefix to pid_for_children_ns_id field (Pavel Tikhomirov ) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869) - mount: remove const from path pointer in mount_resolve_path (Pavel Tikhomirov ) (#PSBM-106869) - sk-unix: add some missed error printing (Pavel Tikhomirov ) (#PSBM-106906) - mount-v2: make is_internal_yard check nsid for null (Pavel Tikhomirov ) (#PSBM-106854) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - sk-unix: preserve mnt_id for bindmounted unix sockets from SIOCUNIXFILE (Alexander Mikhalitsyn ) (#PSBM-106703) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - mount: add plain mountpoint for cr_time mount (Pavel Tikhomirov ) (#PSBM-96757 #PSBM-96757 #PSBM-107632) - zdtm: bind-mount-unix: fix one another absolute path for vzt-cpt (Pavel Tikhomirov ) (#PSBM-96757) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: bind-mount-unix: make absolute path always right (Pavel Tikhomirov ) - zdtm/jenkins: enable mounts-v2 by default for tests which require it (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) (#PSBM-101807) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: change overlayfs_fsnotify00 logic for a more generic fsnotify testing (Valeriy Vdovin ) (#PSBM-104961) - zdtm: renamed overlayfs_fanotify01 to overlayfs_fsnotify00 (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added sequence number to test overlayfs_fanotify (Valeriy Vdovin ) (#PSBM-104961) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) (#PSBM-105161) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961) - zdtm: disable overlayfs test for old mounts engine (Pavel Tikhomirov ) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - fix mount-v2: temporary mount internal yards to mntns trees (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - mount: make is_dir int and -1 initialized (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - jenkins: exclude ns_file_bindmount and thp_disable from tests (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: fix race in pidns02 test plus small cleanup (Pavel Tikhomirov ) (#PSBM-104930) - cr-dump: fix vpid corruption on pre-dump (Alexander Mikhalitsyn ) (#PSBM-104960) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) (#PSBM-96506) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) (#PSBM-96506) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - zdtm: fix pidns03 racy test (Pavel Tikhomirov ) (#PSBM-104930) - pstree: fix race in setpgid prechecks (Pavel Tikhomirov ) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - check-mounts: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - check-mounts: pass for_dump false to collect_mntinfo (Pavel Tikhomirov ) (#PSBM-102357) - zdtm: enable mounts-v2 on restore with --mounts-v2 option (Pavel Tikhomirov ) (#PSBM-58617) - mount: move yard, is_overmounted and merging trees to read_mnt_ns_img (Pavel Tikhomirov ) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount-v2: call resolve_shared_mounts_v2 earier from read_mnt_ns_img (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - util: don't take nested lock for call_in_child_process (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - mount: add one more list validation check to cr_time mount removal (Pavel Tikhomirov ) - mount: fix mnt_sharing list not initialized (Pavel Tikhomirov ) (#PSBM-105464) - mount-v2: treat mount as file-bindmount if mountpoint is not directory (Pavel Tikhomirov ) - zdtm: remove external sharing check from mnt_ext_sharing (Pavel Tikhomirov ) (#PSBM-58617) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) (#PSBM-58617) - mount: add plain mountpoints (Pavel Tikhomirov ) (#PSBM-58617) - config/rpc: add new option --mounts-v2 to enable new engine for mounts (Pavel Tikhomirov ) (#PSBM-58617) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - files-reg: teach clean_one_remap to work with plain mounts (Pavel Tikhomirov ) (#PSBM-58617) - files-reg: teach create_ghost to work with plain mounts (Pavel Tikhomirov ) (#PSBM-58617) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint in mnt_get_sibling_path for relative path (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) (#PSBM-58617) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) (#PSBM-58617) - mount: move set_is_overmounted before doing trees merge (Pavel Tikhomirov ) (#PSBM-58617) - mount: add helper mnt_get_external_nodev (Pavel Tikhomirov ) (#PSBM-58617) - autofs: fix autofs_create_dentries (Pavel Tikhomirov ) (#PSBM-58617) - util: add get_relative_path helper (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-106869) - mount: add mnt_get_root helper (Pavel Tikhomirov ) (#PSBM-58617) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) (#PSBM-58617) - mount: do search_bindmounts earlier (Pavel Tikhomirov ) (#PSBM-58617) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) (#PSBM-58617) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - pstree: add id intersection bug_on to prepare_pstree_for_shell_job (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) - ns: Add ns_get_userns() feature (Kirill Tkhai ) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - net: replace is_zdtm_run with if we dump userns check (Pavel Tikhomirov ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - spfs: fix "uns: message size exceeded" error (Alexander Mikhalitsyn ) (#PSBM-103828) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - mount: replace "internal slavery for external mounts unsupported" error to warning (Alexander Mikhalitsyn ) (#PSBM-103051) - mount: fix resolving bindmounts of external device mounts (Alexander Mikhalitsyn ) (#PSBM-102980) - sk-unix: fix not correct assertion in on_stage_change() that fails restore stage (Alexander Mikhalitsyn ) (#PSBM-102972) - mount: fix failed assertion in mnt_is_external (Alexander Mikhalitsyn ) (#PSBM-102791) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: wake connected sockets strictly after fle stage >= FLE_OPEN (Alexander Mikhalitsyn ) (#PSBM-102605) - files: add on_stage_change callback to file_desc_ops (Alexander Mikhalitsyn ) - zdtm/iptables: wait xtables lock in netns-ipset (Pavel Tikhomirov ) - mount: also honor external_slavery and internal_sharing for root mount (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-100080) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - mount: fix handling of binds of external mount with external slavery (Pavel Tikhomirov ) (#PSBM-100080) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) (#PSBM-100080) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) (#PSBM-100080) - mount: add external_slavery detection (Pavel Tikhomirov ) (#PSBM-100080) - zdtm: add external sharing to mnt_ext_sharing test (Pavel Tikhomirov ) (#PSBM-100080) - mount: make honest external/internal sharing detection (Pavel Tikhomirov ) (#PSBM-100080) - mount: split mnt_is_external and can_receive_master_from_external (Pavel Tikhomirov ) (#PSBM-100080) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) (#PSBM-100080) - zdtm: add new mnt_ext_sharing test (Pavel Tikhomirov ) (#PSBM-100080) - mount: remove source check from mounts_sb_equal (Pavel Tikhomirov ) (#PSBM-100080) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) (#PSBM-100080) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) (#PSBM-101433) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) (#PSBM-101433) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) (#PSBM-101433) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) (#PSBM-101433) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123) - cr-restore: handle join_ve0 errors in restore_root_task (Pavel Tikhomirov ) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958) - net: separate tables_restore from iptables_tool_restore (Pavel Tikhomirov ) (#PSBM-98958) - mount: Add missing newline into the log (Cyrill Gorcunov ) - pie/restorer: Fix typo in debug print (Cyrill Gorcunov ) (#PSBM-98453) - vz7: don't get out VEX cgroup for iptables restore (Pavel Tikhomirov ) (#PSBM-98702) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - mount: mark mounts of external devices external (Pavel Tikhomirov ) (#PSBM-97810 #PSBM-100775) - mount: add a message about found dev-mapping (Pavel Tikhomirov ) - mount: restore shared options in clean mount for external mounts (Pavel Tikhomirov ) (#PSBM-97787) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408) - mount: fix external mounts so that they pass check-mounts (Pavel Tikhomirov ) (#PSBM-96385) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - mount/restore: create mountpoint for auxiliary binfmt_misc mount (Pavel Tikhomirov ) (#PSBM-96621) - mount: fix error print in case of failed bind-mount (Stanislav Kinsburskiy ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) (#PSBM-96082 #PSBM-96362) - mount: remove a leftover mnt_path check (Pavel Tikhomirov ) (#PSBM-96087) - mount: check error return of cut_root_for_bind (Pavel Tikhomirov ) (#PSBM-96087) - check-mounts/spfs: skip flags check for nfs (Pavel Tikhomirov ) (#PSBM-96106) - check-mounts: check all mntnses before failing to have a full picture (Pavel Tikhomirov ) (#PSBM-96106) - mount/check-mounts: remove auxiliary cr-time mount from tree after umount (Pavel Tikhomirov ) (#PSBM-96082) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775) - spfs: make spfs logs relative to criu working directory (Pavel Tikhomirov ) (#PSBM-59204) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - Revert "vz7: cgroup -- Rename net_cls to net_cls,net_prio on the fly" (Cyrill Gorcunov ) - vz: close_fds -- Addition to 6af5df67245755cf7e75553ee65b4a360cbdc602 (Cyrill Gorcunov ) (#PSBM-95035) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949) - netlink: Fix for 52828b9aa350cb027c2cb4c1330e0cd7ceac4b46 (Cyrill Gorcunov ) - vz7: x86,cpu -- Fixup for 4d76e16247621082580e1d137aeba18791040541 (Cyrill Gorcunov ) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - log: Increase early log buffer (Cyrill Gorcunov ) - vz7: cpu -- Move vz_cpu_parse_cpuid_override to early_init (Cyrill Gorcunov ) (#PSBM-85265) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - zdtm: use --check-mounts by default (Pavel Tikhomirov ) (#PSBM-86686) - rpc: Add interface for --check-mounts option (Pavel Tikhomirov ) (#PSBM-86686) - mount: check that mounts tree restored without any hidden problems (Pavel Tikhomirov ) (#PSBM-86686) - epoll: Fix qsort args passing (Cyrill Gorcunov ) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022) - mount: temporary create needed ancestor directories for deleted root (Pavel Tikhomirov ) (#PSBM-77022) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Drop leftover comment (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - test: tty-inherit -- Don't forget to clean buffer (Cyrill Gorcunov ) (#PSBM-94706) - test: tty-inherit -- Handle parse_pid_stat errors (Cyrill Gorcunov ) (#PSBM-94405) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - test: netns_sub_veth -- Disable for a while (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - inet: raw -- Add compatibility layer for old images (Cyrill Gorcunov ) - net: Add prefixes for better logging (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Improve error messaging in file_fown_dead (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - pr-warn: Add missing newlines (Cyrill Gorcunov ) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) - unix: Don't forget to close ns descriptor on error path (Cyrill Gorcunov ) - tun: Add compatibility with old images (Cyrill Gorcunov ) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - test: sk-unix-ucred -- Make compatible with gcc 8 (Cyrill Gorcunov ) - test: cgroup04 -- Disable (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: sk-unix -- Restore qlen before pushing queued data back (Cyrill Gorcunov ) (#PSBM-63762) - vz7: sk-unix -- Adjust default dgram qlen for systemd sake (Cyrill Gorcunov ) (#PSBM-64628) - spfs: suppress compilation warnings by roughly approximating path lenths (Pavel Tikhomirov ) - vz7/mount: show the real mount which is behind the clean mount (Pavel Tikhomirov ) - vz7: reenable not-failing cgroup tests in automatic runs (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - zdtm: temporary make mnt_ext_auto and private_bind_propagation noauto (Pavel Tikhomirov ) (#PSBM-85251) - net: Add net log prefix (Cyrill Gorcunov ) - vz7: net -- Add missing newline into debug message (Cyrill Gorcunov ) - files: Don't forget on stipping deleted postfix on linked files (Cyrill Gorcunov ) (#PSBM-84731) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - vz: test,file_lease00 -- Disable for a while (Cyrill Gorcunov ) - vz: test,pipe03 -- Don't run in uns (Cyrill Gorcunov ) - vz: test,transition,fork -- Postpone for a while (Cyrill Gorcunov ) - vz: test,thread_different_uid_gid -- Postpone for a while (Cyrill Gorcunov ) - vz: test,sched_policy00 -- Drop ns flag for a while (Cyrill Gorcunov ) - vz: test,cgroups -- Skip testing via zdtm run (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) - vz: zdtm,dump,bc -- Skip bc read/write when testing (Cyrill Gorcunov ) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: net: do iptables restore in ve0 (Stanislav Kinsburskiy ) (#PSBM-58574) - vz7: net: iptables_tool_{dump,restore} helpers introduced (Stanislav Kinsburskiy ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: improve prints in spfs_set_mode() and spfs_release_replace() (Stanislav Kinsburskiy ) - spfs: improve SPFS manager start debug and error output (Stanislav Kinsburskiy ) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531) - action-scripts: Export mount namespace roots via CRIU_MNT_NS_ROOTS (Cyrill Gorcunov ) (#PSBM-71861) - mount: Add export_mnt_ns_roots helper (Cyrill Gorcunov ) (#PSBM-71861) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - tty: collect_one_tty_info_entry -- Move tracking setup into main cycle (Cyrill Gorcunov ) (#PSBM-70929) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: images -- Add task_core_entry_vz730 stub (Cyrill Gorcunov ) (#PSBM-67671) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: criu: export join_ve helper (Stanislav Kinsburskiy ) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: mount: allow any types of NFS mount for a while (Stanislav Kinsburskiy ) (#PSBM-68663) - vz7: mounts: support NFS bind-mounts in the same shared group (Stanislav Kinsburskiy ) (#PSBM-68663) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: mounts: support only shared NFS mounts in inits mount namespace (Stanislav Kinsburskiy ) (#PSBM-66945) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: mount: Don't search for siblings inside self (Dmitry Safonov ) (#PSBM-67723) - vz7: cr-service: Init page_ids laterly (Dmitry Safonov ) - vz7: images: Initialize images earlier (before page-server starts) (Dmitry Safonov ) (#PSBM-67335) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335) - vz7: mount: check for mount is unsupported only on dump (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: mounts: print NFS nested mountpoint info (Stanislav Kinsburskiy ) (#PSBM-67466) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: tests: shm-unaligned -- Use unique key for simultaneous run (Cyrill Gorcunov ) (#PSBM-66764) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: Makefile: Fix scripts installation (Cyrill Gorcunov ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: cgroup -- Rename net_cls to net_cls,net_prio on the fly (Cyrill Gorcunov ) (#PSBM-60606 #PSBM-61459 #PSBM-61851) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - vz7: mount: fix mounting non-root shared mounts (Andrei Vagin ) (#PSBM-55494) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407) - vz: kdat -- Query zdtm status runtime (Cyrill Gorcunov ) - vz: zdtm -- Export ZDTM_RUN variable to notify criu (Cyrill Gorcunov ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - vz7: util: Add rmdirp helper (Cyrill Gorcunov ) - vz7: mount: handle error from restore_shared_options() (Andrei Vagin ) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: mount: bind-mount autofs mounts via a file descriptors (Andrei Vagin ) (#PSBM-53194) - vz7: spfs: create control socket in /run/spfs-manager/ (Stanislav Kinsburskiy ) (#PSBM-59199) - vz7: spfs: move SPFS manager to corresponding container's dump directory (Stanislav Kinsburskiy ) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: mnt -- Fetch VEID from cgroup for migration sake (Cyrill Gorcunov ) (#PSBM-52372) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320) - vz7: cg: Don't dump devices.list (Cyrill Gorcunov ) (#PSBM-50551) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) - vz7: files-reg: move ghost_apply_metadata out of create_ghost_dentry (Stanislav Kinsburskiy ) - vz7: mount: create a temporary mount to restore shared and master groups (Andrey Vagin ) (#PSBM-47508 #PSBM-96087) - vz7: files-reg: fix silly-renamed files migration (Stanislav Kinsburskiy ) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: files-reg: split create_ghost (Stanislav Kinsburskiy ) - vz7: scripts: remove obsolete scripts (Stanislav Kinsburskiy ) - vz7: Makefile: install spfs-release-replace.sh script (Stanislav Kinsburskiy ) (#PSBM-49726) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: dump: Show task comm early (Cyrill Gorcunov ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: spfs: explicitly pass size and mode to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723) - vz7: spfs: remove "ns_list" option from "replace" command as obsolete (Stanislav Kinsburskiy ) - vz7: scripts: remove bogus command substitution in nfs-ports-allow.sh (Eugene Kolomeetz ) (#PSBM-44207) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) - vz7: spfs: do not treat existent file as error in create_reg_file (Stanislav Kinsburskiy ) - vz7: scripts: spfs-release-replace.sh introduced (Stanislav Kinsburskiy ) - vz7: criu: spfs -- Fixup various nits for NFS sake (Cyrill Gorcunov ) - vz7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh (Cyrill Gorcunov ) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: spfs -- Mitigate sock_seqpacket_connect (Cyrill Gorcunov ) - vz7: spfs -- Mitigate spfs_manager_socket_path (Cyrill Gorcunov ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: scripts: spfs-change-mode.sh added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488 #PSBM-42488) - build: Switch to v3.15 vanila branch (Pavel Tikhomirov ) (#PSBM-121533) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) (#PSBM-121533) - nft: revert nftables c/r via libnftables (Pavel Tikhomirov ) (#PSBM-121533) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) (#PSBM-121533) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) (#PSBM-121533) - servicefd: fully cleanup parent's shared fd table on service fd update (Pavel Tikhomirov ) (#PSBM-121533) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) (#PSBM-121533) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) (#PSBM-121533) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) (#PSBM-121533) - restore: Value stored to 'ret' is never read (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- mount: ignore root change in cgroup mounts in case of container rename (Pavel Tikhomirov ) (#PSBM-108126) - spfs: fix usage of new_cg_root_get (Pavel Tikhomirov ) (#PSBM-108126)- zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Pavel Tikhomirov ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Pavel Tikhomirov ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Pavel Tikhomirov ) (#PSBM-99868)- binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Pavel Tikhomirov ) (#PSBM-96362) - build: Adjust versions for u16 (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) (#PSBM-96308)- Added ipset requirement (#PSBM-103070)- PSBM-102980 (Alexander Mikhalitsyn ) (#PSBM-102980)- PSBM-102972 (Alexander Mikhalitsyn ) (#PSBM-102972)- PSBM-102791 (Alexander Mikhalitsyn ) (#PSBM-102791)- PSBM-102605 (Alexander Mikhalitsyn ) (#PSBM-102605)- PSBM-96385 PSBM-100080 (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080)- PSBM-100083 (Valeriy Vdovin ) (#PSBM-100083) - PSBM-100083 (Valeriy Vdovin ) (#PSBM-100083) - PSBM-99926 (Alexander Stefanov ) (#PSBM-99926)- PSBM-101433 (Pavel Tikhomirov ) (#PSBM-101433) - PSBM-101433 (Pavel Tikhomirov ) (#PSBM-101433) - PSBM-101145 (Pavel Tikhomirov ) (#PSBM-101145) - PSBM-101433 (Pavel Tikhomirov ) (#PSBM-101433) - PSBM-101433 (Pavel Tikhomirov ) (#PSBM-101433)- PSBM-64123 (Valeriy Vdovin ) (#PSBM-64123)- PSBM-100775 (Pavel Tikhomirov ) (#PSBM-100775)- PSBM-99969 (Alexander Mikhalitsyn ) (#PSBM-99969)- PSBM-100053 (Pavel Tikhomirov ) (#PSBM-100053)- Fixup 4fd65f5762002a8ed57c6c5b3b2f189f70ce3b74 (#PSBM-99360)- mount: Order call_helper_process calls (Cyrill Gorcunov ) (#PSBM-99360) - Revert "restore: Serialize access to last_pid"- build: Adjust versions for u13 - restore: Serialize access to last_pid (#PSBM-99360) - Revert "./test/zdtm/static:conntracks: Support nftables" (#PSBM-99112)- PSBM-99194 (Pavel Tikhomirov ) (#PSBM-99194)- PSBM-99292 (Pavel Tikhomirov ) (#PSBM-99292)- pie: restorer -- Show pids statistics on thread creation failure (#PSBM-99230)- PSBM-99001 (Pavel Tikhomirov ) (#PSBM-99001) - PSBM-99101 (Vitaly Ostrosablin ) (#PSBM-99101)- PSBM-98958 (Pavel Tikhomirov ) (#PSBM-98958) - PSBM-98958 (Pavel Tikhomirov ) (#PSBM-98958)- PSBM-98888 (Pavel Tikhomirov ) (#PSBM-98888) - PSBM-98888 (Pavel Tikhomirov ) (#PSBM-98888)- pie/restorer: Fix typo in debug print (#PSBM-98453)- PSBM-98702 (Pavel Tikhomirov ) (#PSBM-98702)- PSBM-98502 (Pavel Tikhomirov ) (#PSBM-98502)- PSBM-98438 (Pavel Tikhomirov ) (#PSBM-98438)- PSBM-98231 (Pavel Tikhomirov ) (#PSBM-98231)- PSBM-96943 (Pavel Tikhomirov ) (#PSBM-96943)- PSBM-98094 (Pavel Tikhomirov ) (#PSBM-98094)- PSBM-97810 (Pavel Tikhomirov ) (#PSBM-97810)- PSBM-97787 (Pavel Tikhomirov ) (#PSBM-97787)- test: Add pipe04 test - pipes: Make pipe_data_dump dynamic (#PSBM-97048)- restorer: Add debug print for clone call (#PSBM-97408) - mount: fix external mounts so that they pass check-mounts (Pavel Tikhomirov ) (#PSBM-96385)- PSBM-96981 (Cyrill Gorcunov ) (#PSBM-96981)- PSBM-96973 (Pavel Tikhomirov ) (#PSBM-96973)- zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) (#PSBM-60715) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) (#PSBM-60715) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) (#PSBM-60715) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) (#PSBM-60715) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) (#PSBM-60715) - vtty: tty_verify_ctty -- Fix a typo (#PSBM-96852) - mount/restore: create mountpoint for auxiliary binfmt_misc mount (Pavel Tikhomirov ) (#PSBM-96621)- mount/restore: create mountpoint for auxiliary binfmt_misc mount (Pavel Tikhomirov ) (#PSBM-96621)- mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) (#PSBM-96376) - mount: fix error print in case of failed bind-mount (Stanislav Kinsburskiy ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) (#PSBM-96082 #PSBM-96362) - mount: remove a leftover mnt_path check (Pavel Tikhomirov ) (#PSBM-96087) - mount: check error return of cut_root_for_bind (Pavel Tikhomirov ) (#PSBM-96087) - mount: fix parentheses nit in else condition in do_bind_mount (Pavel Tikhomirov ) (#PSBM-96087)- build: Adjust version for vz7-u12 - check-mounts/spfs: skip flags check for nfs (Pavel Tikhomirov ) (#PSBM-96106) - check-mounts: check all mntnses before failing to have a full picture (Pavel Tikhomirov ) (#PSBM-96106) - mount/check-mounts: remove auxiliary cr-time mount from tree after umount (Pavel Tikhomirov ) (#PSBM-96082)- pie/restorer: Reread last_pid on error (#PSBM-96105) - pie/restorer: Fix fd leaking on error path (#PSBM-96105)- seize: Print tracer pid for debug sake (#PSBM-96110)- mem/pagema-cache: Drop confusing log (#PSBM-95760) - mem/shmem: Use pmc_ helpers instead of accessing map directly - mem: generate_iovs -- Use pmc_get_pfn_from helper - mem/pagemap-cache: Provide api for map access - mem/pagema-cache: Make sure we're not accessing stale data - stats: Make dstats shmem (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - mem/shmem: Fix typos for_each_shmem macro - mem/shmem: Use xmalloc in collect_sysv_shmem - mem/shmem: Reorder code in expand_shmem - mem/shmem: Use xrealloc_safe in expand_shmem - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole - mem/pmc: Print pid for debug sake - mem/pmc: Use pr_warn_once if cache is disabled - mem/page-xfer: Add log prefix - mem/vma: Sanitize struct vm_area_list - mem/vma: Drop never used VM_AREA_LIST macro - mem/vma: Use vm_area_list_init where appropriate - mem/vma: Use memset for vm_area_list_init - mem/page-pipe: Use ssize_t for splice/tee results - mem/page-pipe: Align members for readability sake - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment - mem/page-pipe: Eliminate redundant pipe_off setup- Add phaul requirement (#PSBM-95828)- scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775)- spfs: make spfs logs relative to criu working directory (Pavel Tikhomirov ) (#PSBM-59204)- pid-reuse: Ensure we're fetching params from ve0 (#PSBM-95422)- fsnotify: Allow to get updated restored wd (#PSBM-91520) - Revert "vz7: cgroup -- Rename net_cls to net_cls,net_prio on the fly" - criu.spec: Add python-ipaddress for python-criu package (#PSBM-94578)- vz: close_fds -- Addition to 6af5df67245755cf7e75553ee65b4a360cbdc602 (#PSBM-95035)- vz: close_fds -- Skip closing external service fd (#PSBM-94949) - netlink: Fix for 52828b9aa350cb027c2cb4c1330e0cd7ceac4b46 - vz7: x86,cpu -- Fixup for 4d76e16247621082580e1d137aeba18791040541 - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - log: Increase early log buffer- build: Switch to v3.12 vanilla branch - files-reg: Fix 847db9c3239f9951407a2d09b794eea63d24b2df - vz7: cpu -- Move vz_cpu_parse_cpuid_override to early_init (#PSBM-85265) - test: bers -- Provide --pidfile option - fsnotify: Add error print for nexwd failure (#PSBM-91520) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (#PSBM-93461) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - spfs: Fix typo in get_spfs_mngr_sock (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (#PSBM-93462) - mount: fix order of mnt namespaces in united mount tree (Pavel Tikhomirov ) (#PSBM-93305) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - zdtm: use --check-mounts by default (Pavel Tikhomirov ) (#PSBM-86686) - rpc: Add interface for --check-mounts option (Pavel Tikhomirov ) (#PSBM-86686) - mount: check that mounts tree restored without any hidden problems (Pavel Tikhomirov ) (#PSBM-86686) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) (#PSBM-86686) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) (#PSBM-86686) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) (#PSBM-86686) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) (#PSBM-86686) - epoll: Fix qsort args passing - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022) - mount: temporary create needed ancestor directories for deleted root (Pavel Tikhomirov ) (#PSBM-77022) - arch,x86: Investigate OSPKE status when handling PKU (#PSBM-91098) - ve: tty -- Preallocate space for itty pool (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert - ve: tty -- Drop leftover comment - ve: tty -- Investigate master fds with a mutex taken (#PSBM-90662) - ve: rst,files -- Guard list with mutex (#PSBM-90662) - test: tty-inherit -- Don't forget to clean buffer (#PSBM-94706) - test: tty-inherit -- Handle parse_pid_stat errors (#PSBM-94405) - ve: tty -- Add tty-inherit test - ve: tty -- Add support of tty inheritance, v2 (#PSBM-76490) - crtools: Show command line in log - files: Select proper master fd when collecting fd (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper - test: netns_sub_veth -- Disable for a while - restore: Fix hang if root task is waiting on zombie (#PSBM-89830) - restore: Don't ignore errors on wait in restore_one_zombie - restore: Add more detailed log in wait_exiting_children - restore: zombie -- Add more detailed log on signals - inet: raw -- Add compatibility layer for old images - net: Add prefixes for better logging (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (#PSBM-89582) - mount: Fix typo in message - ve: Add helpers for debug sake - fown: test -- Improve error messaging in file_fown_dead - fown: test -- Update file_own_dead to test O_PATH case - fown: Don't fail on dumping files opened wit O_PATH (#PSBM-89680) - fown: test -- Add file_fown_dead - fown: Dont fail if owner is a dead pid (#PSBM-88336) - .gitignore: Add patches/ - ve: tty -- Add more detailed debug print in ctty verification - ve: tty -- Save pid of a task which setups a controlling terminal - ve: tty -- Save tty_pgrp in process tree upon read - unix: Don't forget to restore original errno - pr-warn: Add missing newlines - compel: Don't forget to zap remote_map pointer after release (#PSBM-89231) - ve: tty -- Don't stuck if several ctty opened - ve: tty -- Save virtual group id - ve: tty -- Collect real ppid, pgid, sid on dump - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty - unix: Disable switching mount namespace (#PSBM-89126) - vz7: files-reg -- Show which exactly file can't be created - unix: Don't forget to close ns descriptor on error path - tun: Add compatibility with old images - test: bind-mount-unix -- Implement real connect - unix: unix_prepare_bindmount -- Allow to connect via relative name (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets - unix: bind_unix_sk -- Add ability to skip waiters notification (#PSBM-88274) - unix: make_socket -- Break connected pair if requested - unix: make_socket -- Add more detailed logs - unix: break_connected -- Add a log recod - unix: bindmount -- Show details about queuer - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - test: sk-unix-ucred -- Make compatible with gcc 8 - vz7: image -- Add compat layer for Core entry (#PSBM-88238) - test: cgroup04 -- Disable - unix: bindmount -- Move mounting code to be called before first mount - vz7: unix: Add compatibility with u7 images (#PSBM-86861) - unix: test -- Add bind-mount-unix test case - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - unix: Add support for bindmounted sockets - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) - unix: image -- Move uflags into enum - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths - vz7: sk-unix -- Restore qlen before pushing queued data back (#PSBM-63762) - vz7: sk-unix -- Adjust default dgram qlen for systemd sake (#PSBM-64628) - spfs: suppress compilation warnings by roughly approximating path lenths (Pavel Tikhomirov ) - vz7/mount: show the real mount which is behind the clean mount (Pavel Tikhomirov ) - vz7: reenable not-failing cgroup tests in automatic runs (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (#PSBM-86775) - zdtm: temporary make mnt_ext_auto and private_bind_propagation noauto (Pavel Tikhomirov ) (#PSBM-85251) - net: Add net log prefix - vz7: net -- Add missing newline into debug message - files: Don't forget on stipping deleted postfix on linked files (#PSBM-84731) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - files: Don't fail on cgroup directories mode change (#PSBM-83154) - test: unlink_multiple_largefiles -- Make noauto - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - vz: test,file_lease00 -- Disable for a while - vz: test,pipe03 -- Don't run in uns - vz: test,transition,fork -- Postpone for a while - vz: test,thread_different_uid_gid -- Postpone for a while - vz: test,sched_policy00 -- Drop ns flag for a while - vz: test,cgroups -- Skip testing via zdtm run - vz: test,tty -- Use ns flavor - vz: test,pty -- Use ns flavor - vz: zdtm,mount -- Don't fetch veid when testing and skip cr moutns - vz: zdtm,restore -- Skip entering veX when testing - vz: zdtm,dump,bc -- Skip bc read/write when testing - vz: zdtm,net,iptables -- Don't enter userns for a root - vz: kdat -- Query zdtm status runtime - vz: zdtm -- Export ZDTM_RUN variable to notify criu - vz: zdtm -- Don't fail in __construct_root if entries exist - vz7: net: do iptables restore in ve0 (Stanislav Kinsburskiy ) (#PSBM-58574) - vz7: net: iptables_tool_{dump,restore} helpers introduced (Stanislav Kinsburskiy ) - vz7: sockets: Separate socket buffer size setting into a helper (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (#PSBM-61573 #PSBM-61812) - tty: Move session lookup leader into find_session_leader - tty: Fetch ctty index based on sid - tty: Add is_ctty helper - tty: Don't check for group inheritance - files-reg: Prepare for sysfs entries mode change (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (#PSBM-80095) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: improve prints in spfs_set_mode() and spfs_release_replace() (Stanislav Kinsburskiy ) - spfs: improve SPFS manager start debug and error output (Stanislav Kinsburskiy ) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - tty: Use mnt_id for first lookup of toplevel devpts (#PSBM-78460) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531) - action-scripts: Export mount namespace roots via CRIU_MNT_NS_ROOTS (#PSBM-71861) - mount: Add export_mnt_ns_roots helper (#PSBM-71861) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - tty: collect_one_tty_info_entry -- Move tracking setup into main cycle (#PSBM-70929) - tty: collect_one_tty -- Make sure the index is in range - tty: tty_has_active_pair -- Make sure no overflow happened - tty: tty_test_and_set -- Make sure no overflow happened - tty: Fix __tty_verify_active_pairs - tty: Use macros for bitmap length - vz7: images -- Add task_core_entry_vz730 stub (#PSBM-67671) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (#PSBM-68738) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (#PSBM-68062) - vz7: criu: export join_ve helper (Stanislav Kinsburskiy ) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: mount: allow any types of NFS mount for a while (Stanislav Kinsburskiy ) (#PSBM-68663) - vz7: mounts: support NFS bind-mounts in the same shared group (Stanislav Kinsburskiy ) (#PSBM-68663) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: mounts: support only shared NFS mounts in inits mount namespace (Stanislav Kinsburskiy ) (#PSBM-66945) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: mount: Don't search for siblings inside self (Dmitry Safonov ) (#PSBM-67723) - vz7: sk-queue: fix non-fatal print log level (Stanislav Kinsburskiy ) - vz7: cr-service: Init page_ids laterly (Dmitry Safonov ) - vz7: images: Initialize images earlier (before page-server starts) (Dmitry Safonov ) (#PSBM-67335) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335) - vz7: mount: check for mount is unsupported only on dump (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: mounts: print NFS nested mountpoint info (Stanislav Kinsburskiy ) (#PSBM-67466) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: tests: shm-unaligned -- Use unique key for simultaneous run (#PSBM-66764) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: Makefile: Fix scripts installation - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: filesystems: binfmt -- Add debug print on dumping stage (#PSBM-65185) - vz7: restore_sk_queue -- Show how many bytes already sent (#PSBM-64628) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (#PSBM-62778) - vz7: sk-queue -- Show the creds we're sending (#PSBM-64009) - vz7: seize -- Wait for seize in thawed state (#PSBM-63841) - vz7: freezer -- Add set_freezer_state helper (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach - vz7: Show status of uninterruptable task (#PSBM-63211) - vz7: ucred -- Drop packets from dead processes (#PSBM-62603) - vz7: sk-queue -- Add support of ucreds in unix sockets (#PSBM-61095) - vz7: test: Add ucreds test - vz7: Zap file size checking for "atop" (#PSBM-61459) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (#PSBM-61248) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: cgroup -- Rename net_cls to net_cls,net_prio on the fly (#PSBM-60606 #PSBM-61459 #PSBM-61851) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - vz7: mount: fix mounting non-root shared mounts (Andrei Vagin ) (#PSBM-55494) - vz7: pipes -- Restore pipe size via userns call (#PSBM-59829) - vz7: test: pty05 -- Add testing of multiple devpts instance - vz7: tty -- Don't fail if @mnt_id is not present in images (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (#PSBM-58616) - vz7: tty: Save mount ids for terminals into image - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: Unlimit UBC when chekpointing (#PSBM-53593 #PSBM-61534 #PSBM-53593) - vz7: restore -- Enter destination veX once usernsd is up (#PSBM-56407) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED - vz7: Don't use executable stacks in @syscall_ip (#PSBM-55989) - vz7: util: Add rmdirp helper - vz7: mount: handle error from restore_shared_options() (Andrei Vagin ) - vz7: seize: Add additional diagnose messages (#PSBM-53929) - vz7: mount: bind-mount autofs mounts via a file descriptors (Andrei Vagin ) (#PSBM-53194) - vz7: spfs: create control socket in /run/spfs-manager/ (Stanislav Kinsburskiy ) (#PSBM-59199) - vz7: spfs: move SPFS manager to corresponding container's dump directory (Stanislav Kinsburskiy ) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: mnt -- Fetch VEID from cgroup for migration sake (#PSBM-52372) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320) - vz7: cg: Don't dump devices.list (#PSBM-50551) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) - vz7: files-reg: move ghost_apply_metadata out of create_ghost_dentry (Stanislav Kinsburskiy ) - vz7: mount: create a temporary mount to restore shared and master groups (Andrey Vagin ) (#PSBM-47508) - vz7: files-reg: fix silly-renamed files migration (Stanislav Kinsburskiy ) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: files-reg: split create_ghost (Stanislav Kinsburskiy ) - vz7: scripts: remove obsolete scripts (Stanislav Kinsburskiy ) - vz7: Makefile: install spfs-release-replace.sh script (Stanislav Kinsburskiy ) (#PSBM-49726) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: dump: Show task comm early - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: spfs: explicitly pass size and mode to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) - restore: pidfile -- write before post-restore stage (#PSBM-90289) - log: Write more details in write_pidfile - vz7: compel -- Add support for vz7 specific cpuid masking (#PSBM-47748 #PSBM-49423) - vz7: tty: Save task current terminal if present - vz7: files: Allow to dump ploopX files opened (#PSBM-49723) - vz7: spfs: remove "ns_list" option from "replace" command as obsolete (Stanislav Kinsburskiy ) - vz7: scripts: remove bogus command substitution in nfs-ports-allow.sh (Eugene Kolomeetz ) (#PSBM-44207) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) - vz7: spfs: do not treat existent file as error in create_reg_file (Stanislav Kinsburskiy ) - vz7: scripts: spfs-release-replace.sh introduced (Stanislav Kinsburskiy ) - vz7: criu: spfs -- Fixup various nits for NFS sake - vz7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: spfs -- Mitigate sock_seqpacket_connect - vz7: spfs -- Mitigate spfs_manager_socket_path - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: scripts: spfs-change-mode.sh added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - vz7: aio: Don't fail if kernel does not support aio wait (Kirill Tkhai ) (#PSBM-42488) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488)- spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - Revert "spfs: Retrieve NFS server IP address from mountinfo" - Revert "script/spfs: resolve dns to ip for iptables utility" (Pavel Tikhomirov )- spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-92070)- script/spfs: resolve dns to ip for iptables utility (Pavel Tikhomirov ) (#PSBM-92070)- Revert "spfs: Retrieve NFS server IP address from mountinfo" (#PSBM-93882)- build: Makefile.version - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-92070) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (#PSBM-93461) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511)- sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (#PSBM-93461)- files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511)- spfs: Fix typo in get_spfs_mngr_sock (#PSBM-93663)- spfs: When fetching sfd provide a copy of it (#PSBM-93663)- spfs: Return proper service fd from install_service_fd call (#PSBM-93462)- mount: fix order of mnt namespaces in united mount tree (Pavel Tikhomirov ) (#PSBM-93305)- test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - zdtm: use --check-mounts by default (Pavel Tikhomirov ) (#PSBM-86686) - rpc: Add interface for --check-mounts option (Pavel Tikhomirov ) (#PSBM-86686) - mount: check that mounts tree restored without any hidden problems (Pavel Tikhomirov ) (#PSBM-86686) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) (#PSBM-86686) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) (#PSBM-86686) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) (#PSBM-86686) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) (#PSBM-86686)- epoll: Fix qsort args passing- test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - Revert "test: epoll -- Add migrated target test" - Revert "epoll: Eliminate potential variable shadowing" - Revert "epoll: Defer queued epolls to write at the end of checkpoint" - Revert "epoll: Drop duped and closed targets" - Revert "epoll: Add ability to restore migrated targets" - Revert "epoll: Save virtual pid for targets" - Revert "epoll: Fix typo in flush_eventpoll_dinfo_queue"- restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - epoll: Fix typo in flush_eventpoll_dinfo_queue (#PSBM-92672)- early_init: Force to unlimit files on early init (#PSBM-92451)- Revert "test: Add unlink_dir test" - Revert "files: Rework clean_one_remap to order ghost dirs removal"- test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - Revert "files: Order ghost directories enties" - Revert "test: Add unlink_dir test" - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov )- zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022) - mount: temporary create needed ancestor directories for deleted root (Pavel Tikhomirov ) (#PSBM-77022)- test: Add unlink_dir test (Cyrill Gorcunov ) - files: Order ghost directories enties (Cyrill Gorcunov ) (#PSBM-91524) - arch,x86: Investigate OSPKE status when handling PKU (#PSBM-91098)- ve: tty -- Preallocate space for itty pool (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert - ve: tty -- Drop leftover comment - ve: tty -- Investigate master fds with a mutex taken (#PSBM-90662) - ve: rst,files -- Guard list with mutex (#PSBM-90662) - ve: tty -- Add tty-inherit test - ve: tty -- Add support of tty inheritance, v2 (#PSBM-76490) - sockets: Don't exit with error if raw module unloaded (Cyrill Gorcunov ) - sockets: Be more verbose in collect_err (Cyrill Gorcunov ) - net: libnetlink -- Drop ERROR keyword from default handler (Cyrill Gorcunov ) - net: sockets -- Don't spam log with known errors (Cyrill Gorcunov ) - net: libnetlink -- Call error handler instead of unconditional error message (Cyrill Gorcunov ) - test: epoll -- Add migrated target test - epoll: Save virtual pid for targets - epoll: Add ability to restore migrated targets (#PSBM-90012) - epoll: Drop duped and closed targets - epoll: Defer queued epolls to write at the end of checkpoint - Revert "epoll: Ignore migrated tfds on checkpoint" - Revert "test: epoll -- Add file inherited case" - zdtm.py: also check that mount flags are restored correct (Pavel Tikhomirov ) (#PSBM-82991) - zdtm: test dumping file on overmounted mount fails (Pavel Tikhomirov ) (#PSBM-82991) - files: open files on overmounted mounts are not supported (Pavel Tikhomirov ) (#PSBM-82991) - zdtm: ghost on readonly fs (Pavel Tikhomirov ) (#PSBM-82991) - mount: remount ro mounts writable before ghost-file restore (Pavel Tikhomirov ) (#PSBM-82991) - mount: save the result of mnt_is_overmounted (Pavel Tikhomirov ) (#PSBM-82991) - mount: remove unused argument of do_restore_task_mnt_ns (Pavel Tikhomirov ) (#PSBM-82991) - files: don't add double slash to path in create_ghost (Pavel Tikhomirov ) - vz7: Add Makefile.version - crtools: Show command line in log - Rebase to vanilla criu v3.11- restore: pidfile -- write before post-restore stage (#PSBM-90289) - Revert "restore: pidfile -- Write from ve0 context"- restore: pidfile -- Write from ve0 context (#PSBM-90289)- log: Write more details in write_pidfile - files: Select proper master fd when collecting fd (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper- test: epoll -- Add file inherited case - epoll: Ignore migrated tfds on checkpoint (#PSBM-89961) - test: netns_sub_veth -- Disable for a while - epoll: Eliminate potential variable shadowing (#PSBM-89961)- restore: Fix hang if root task is waiting on zombie (#PSBM-89830) - restore: Don't ignore errors on wait in restore_one_zombie - restore: Add more detailed log in wait_exiting_children - restore: zombie -- Add more detailed log on signals- raw: Don't carry zero options into the image (#PSBM-89822)- inet: raw -- Add compatibility layer for old images - inet: More readable content in show methods (Cyrill Gorcunov ) - sockets: Improve helpers to make sockets more readable (Cyrill Gorcunov ) - net: Add prefixes for better logging (Cyrill Gorcunov ) - inet: raw -- Add socket-raw test (Cyrill Gorcunov ) - inet: raw -- Add checkpoint and restore of raw sockets - inet: raw -- Split lookup_socket helper (Cyrill Gorcunov ) - inet: raw -- Add preloading raw_diag module (Cyrill Gorcunov ) - inet: raw -- Add raw sockets into can_dump_inet_sk (Cyrill Gorcunov ) - inet: raw -- Skip IP_FREEBIND for ipv6 SOCK_RAW sockets (Kirill Tkhai ) - inet: raw -- Prepare gen_uncon_sk for raw sockets (Cyrill Gorcunov ) - inet: raw -- Reuse already known family and type in gen_uncon_sk (Cyrill Gorcunov ) - inet: raw -- Fetch socket type and check for being raw in can_dump_ipproto (Cyrill Gorcunov ) - inet: raw -- Check for kernel diag module support (Cyrill Gorcunov ) - inet: raw -- Add constants needed to fetch properties of a raw socket (Cyrill Gorcunov ) - compiler: Add NELEMS_AS_ARRAY helper (Cyrill Gorcunov )- mount: cr_pivot_root -- Try temp directory first (#PSBM-89582) - mount: Fix typo in message - ve: Add helpers for debug sake- fown: test -- Improve error messaging in file_fown_dead - fown: test -- Update file_own_dead to test O_PATH case - fown: Don't fail on dumping files opened wit O_PATH (#PSBM-89680) - fown: test -- Add file_fown_dead - fown: Dont fail if owner is a dead pid (#PSBM-88336) - .gitignore: Add patches/- ve: tty -- Add tty-inherit test - ve: tty -- Add support of tty inheritance, v2 (#PSBM-76490) - ve: tty -- Add more detailed debug print in ctty verification - ve: tty -- Save pid of a task which setups a controlling terminal - ve: tty -- Save tty_pgrp in process tree upon read - Revert "ve: tty -- Add support of tty inheritance" - Revert "ve: tty -- Fill ctty deps from the root task" - Revert "ve: tty -- Add tty-inherit test" - unix: Don't forget to restore original errno - pr-warn: Add missing newlines- ve: tty -- Fill ctty deps from the root task (#PSBM-89336)- image: Add missing newline into messages - zdtm: check criu restore with --auto-dedup (Pavel Tikhomirov ) (#PSBM-89056) - image/dedup: use userns_call to be able to open images for write (Pavel Tikhomirov ) (#PSBM-89056) - Punch holes in input files when restoring anonymous non-shared memory if --auto-dedup is enabled. (Pawel Stradomski ) (#PSBM-89056)- cr_pre_dump_finish: Fix ignorance of error upon enter (#PSBM-89231) - compel: Don't forget to zap remote_map pointer after release (#PSBM-89231)- ve: tty -- Add tty-inherit test - ve: tty -- Add support of tty inheritance (#PSBM-76490) - ve: tty -- Don't stuck if several ctty opened - ve: tty -- Save virtual group id - ve: tty -- Collect real ppid, pgid, sid on dump - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty - x86: cpu -- Don't fail if member is not present in image (#PSBM-89215)- unix: Disable switching mount namespace (#PSBM-89126) - vz7: files-reg -- Show which exactly file can't be created - crtools: Show command line in log - unix: Don't forget to close ns descriptor on error path- test: tun -- Check if names are not clashed in different ns (#PSBM-88851) - tun: Add compatibility with old images (#PSBM-88851)- tun: Add support for multiple net ns (Cyrill Gorcunov ) - tun: Set net ns before opening master (Cyrill Gorcunov ) (#PSBM-88714) - tun: Define log prefix (Cyrill Gorcunov ) - test: sk-unix-mntns -- Check for unshare code - test: tun_ns -- Make sure unshare passed - test: bind-mount-unix -- Implement real connect - unix: unix_prepare_bindmount -- Allow to connect via relative name (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets - unix: bind_unix_sk -- Add ability to skip waiters notification (#PSBM-88274) - unix: make_socket -- Break connected pair if requested - unix: make_socket -- Add more detailed logs - unix: break_connected -- Add a log recod - unix: bindmount -- Show details about queuer- Revert "vz7: scripts: use absolute binaries paths nfs-ports-allow.sh" (Pavel Tikhomirov ) (#PSBM-88499) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - python-criu: Add dependency on python-six (#PSBM-88425)- inet: raw -- Skip IP_FREEBIND for ipv6 SOCK_RAW sockets (Kirill Tkhai ) (#PSBM-88262) - test: sk-unix-ucred -- Make compatible with gcc 8- vz7: image -- Add compat layer for Core entry (#PSBM-88238) - unix: typo fix (Andrei Vagin ) - unix: check that a length of a socket is less than UNIX_PATH_MAX (Andrei Vagin ) - compel: Make sure the hostprog is built early (Cyrill Gorcunov ) - compel: Move lib files into lib-y (Cyrill Gorcunov ) - nmk: Make collect-deps to be more precise about targets (Cyrill Gorcunov ) - nmk: Add obj and lib deps gathering via helpers (Cyrill Gorcunov ) - nmk: Add collect-target-deps helper (Cyrill Gorcunov ) - nmk: Add collect-hostprogs-deps helper (Cyrill Gorcunov ) - nmk: Align continuations (Cyrill Gorcunov ) - nmk: Drop unneeded ld_flags (Cyrill Gorcunov ) - nmk: Gather reserved vars on top of build (Cyrill Gorcunov ) - nmk: Filter out already seen targets from collect-deps (Cyrill Gorcunov ) - nmk: Don't include deps on mrproper (Cyrill Gorcunov )- x86: cpu -- Require compatibility on instruction level by default (#PSBM-88119) - x86: cpu -- Use native uint_x types - Rebase to vanilla criu v3.10- mount: fix segmentation fault in can_mount_now on no mnt_master (Pavel Tikhomirov ) (#PSBM-86978)- unix: Add compatibility with u7 images (#PSBM-86861) - unix: image -- Restore mnt_id index - zdtm: temporary make mnt_ext_auto and private_bind_propagation noauto (Pavel Tikhomirov ) (#PSBM-85251) - dump/files: remove a leftover from dead_pid_conflict (Pavel Tikhomirov ) (#PSBM-55217) - mount: fix regression where open_mountpoint failed on readonly fs (Pavel Tikhomirov )- zdtm: add a test for non-uniform shares (Pavel Tikhomirov ) - mount: remove validate_shared as now we allow non-uniform sharings (Pavel Tikhomirov ) (#PSBM-78703) - mount: use propagation groups in propagate_mount replacing excess search (Pavel Tikhomirov ) - mount: improve can_mount_now using propagation groups (Pavel Tikhomirov ) - mount: put all mounts which propagate from each other to a list (Pavel Tikhomirov ) - zdtm: check children of shared slaves restore (Pavel Tikhomirov ) - mount: fix can_mount_now to wait children of master's share properly (Pavel Tikhomirov ) - zdtm: add a test for unsupported children collision (Pavel Tikhomirov ) - mount: add helper to check unsupported children collision (Pavel Tikhomirov )- inet: raw -- Storm the test with all protos (#PSBM-86357) - inet: raw -- Lookup for collected bit on non-raw sockets only (#PSBM-86357)- zdtm/static: add a test to check epoll file descriptors (Andrei Vagin ) - epoll: Use epoll queues to speedup multiple duped fds (#PSBM-86295) - files: make_gen_id -- Promote to be general helper (Cyrill Gorcunov ) - epoll: Add kid_lookup_epoll_tfd helper (Cyrill Gorcunov ) - epoll: Exit with error if tfd is missing (Cyrill Gorcunov ) - epoll: Save fields of target files in eventpoll_tfd_entry (Cyrill Gorcunov ) - epoll: Add kcmp_epoll check - epoll: Align members in assignments (Cyrill Gorcunov ) - epoll: Print efd id when showing targets (Cyrill Gorcunov ) - epoll: Show tfd in decimal form (Cyrill Gorcunov ) - epoll: Add support for multiple duped fds (Cyrill Gorcunov ) - Revert "epoll: Add support for multiple duped fds" - Revert "epoll: Drop unneeded variable from cycle" - Revert "test: eventfs00 -- Extend to test duped fd" - Revert "epoll: Fix typo in var type"- epoll: Fix typo in var type (#PSBM-86256)- Revert "mount: don't lose shared options for bind mounts"- fdstore: Unlimit fdstore queue on start (#PSBM-86038) - Revert "fdstore: Print detailed error when queue is exhausted" - test: eventfs00 -- Extend to test duped fd (Cyrill Gorcunov ) - epoll: Drop unneeded variable from cycle (Cyrill Gorcunov ) - epoll: Add support for multiple duped fds (#PSBM-60161) - Revert "test: eventfs00 -- Extend to test duped fd"- fdstore: Print detailed error when queue is exhausted (Cyrill Gorcunov ) (#PSBM-86038) - zdtm: shared options should not be lost for bind mounts (Pavel Tikhomirov ) - zdtm.py: also check that sharing options are restored for mounts (Pavel Tikhomirov ) - mount: don't lose shared options for bind mounts (Pavel Tikhomirov ) (#PSBM-85251) - unix: test,sk-unix01 -- Fix data sending for be machines (Cyrill Gorcunov )- net: veth -- Don't force to create master peer index if no nsid (#PSBM-85558) - net: Add net log prefix- test: eventfs00 -- Extend to test duped fd (Cyrill Gorcunov ) - epoll: Use kcmp to find proper target file (Cyrill Gorcunov ) (#PSBM-60161) - epoll: Use real file transferred for target fds check (Cyrill Gorcunov ) - epoll: Pass drained fds to dump_one_file - epoll: kdat -- Check if we have KCMP_EPOLL_TFD support - kcmp: Add epoll definitions (Cyrill Gorcunov ) - kcmp: Drop empty line at EOF (Cyrill Gorcunov ) - kcmp: Beautify kcmp-ids.h (Cyrill Gorcunov ) - kcmp: Cleanup sources (Cyrill Gorcunov ) - Revert "vz7: epoll -- Dont fail on dup'ed fd restore" - Revert "vz7: epoll -- Use real file transferred for target fds check"- inventory: save dump_uptime for criu dump if track_mem is set (Andrei Vagin ) (#PSBM-85936) - zdtm: check that pid-reuse does not break iterative memory dump (Pavel Tikhomirov ) (#PSBM-67502) - zdtm/lib: add pre-dump-notify test flag (Pavel Tikhomirov ) - memory: don't use parent memdump if detected possible pid reuse (Pavel Tikhomirov ) (#PSBM-67502) - inventory: add a helper to get entry of parent pre-dump (Pavel Tikhomirov ) (#PSBM-67502) - inventory: save uptime to know when dump had happened (Pavel Tikhomirov ) (#PSBM-67502) - parse: add a helper to obtain an uptime (Pavel Tikhomirov ) (#PSBM-67502) - Revert "parse: add a helper to obtain an uptime" - Revert "stats: save uptime to know when dump had happened" - Revert "stats: add a helper to get stats of parent pre-dump" - Revert "memory: don't use parent memdump if detected possible pid reuse" - Revert "mem: Fix typo in detect_pid_reuse" - Revert "mem: pid-reuse -- Don't fail if no stat image present" - Revert "pid-reuse: temporary use stat file from cwd if has no parent stats" - x86: cpu -- Proceed even if xsavec detected for dev reason (Cyrill Gorcunov )- unix: Add bind-mount-unix test case (Cyrill Gorcunov ) - unix: Add support for bindmounted sockets (#PSBM-82616) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets - unix: image -- Move uflags into enum - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - zdtm: Add sstrncpy helper (Cyrill Gorcunov )- x86: cpu -- Show which exactly features are failing in fpu capability mode (Cyrill Gorcunov ) - x86: cpu -- Use rt information since it might we filtered - x86: cpu -- Add ability to ignore xsaves (Cyrill Gorcunov ) - compel: cpu -- Add ability to clear features (Cyrill Gorcunov ) - x86: cpu -- Report when unsupported compact xsave frame detected (#PSBM-83611) - x86: cpu -- Check for xsaves bit on cpu validation (Cyrill Gorcunov ) - x86: cpu -- Show additional xsave info on init (Cyrill Gorcunov ) - x86: cpu -- Add new instruction bits to check (Cyrill Gorcunov ) - x86: cpu -- Sync bits with kernel - crit: Show cpuinfo image - x86: Use uint_x types in rt_sigcontext (Cyrill Gorcunov ) - vz7: net -- Add missing newline into debug message- vz7: Move cpu_init into early_init (#PSBM-85265)- unix: test -- Add sk-unix01 test (#PSBM-82615) - unix: Improve debug message when collecting socket (Cyrill Gorcunov ) - unix: Add support of ghost sockets (#PSBM-82615) - unix: Use decimal format for inode printing (Cyrill Gorcunov ) - unix: Rename unlink_stale to unlink_sk (Cyrill Gorcunov ) - unix: Move unix_resolve_name declaration on top - sk-unix: don't pass a negative value to close() (Andrei Vagin ) - parasite: Rename misnamed nr_pages (Dmitry Safonov ) - zdtm: mount tmpfs into /run in a test root (Andrei Vagin ) - fs: take into account that cr_system overrides standard descriptors (Andrei Vagin ) - net: workaround a problem when iptables can't open /run/xtables.lock (Andrei Vagin ) - zdtm: create /run in a test root (Andrei Vagin ) - criu: fix 'criu --version' - service: don't cache a service descriptor - files: drop O_TMPFILE from file descriptor flags (Andrei Vagin ) - criu: print criu and kernel versions from log_init() - criu: initialize logging for libraries from log_set_loglevel() - zdtm: check an exit code of a straced restore (Andrey Vagin ) - zdtm.py: fix a logic about determing a test flavor in a error case (Andrei Vagin ) - unix: split dump_external_sockets() for readability (Andrey Vagin ) - unix: fix an error code in bind_unix_sk() - unit: don't check ui->ue->name.len twice in bind_unix_sk() (Andrey Vagin ) - unix: split bind_unix_sk() for readability (Andrey Vagin ) - unix: restore sockets on correct mount points - unix: resolve a socket file when a socket descriptor is available - kerndat: check the SIOCUNIXFILE ioctl for unix sockets - unix: handle sockets with USK_CALLBACK as external sockets (Andrey Vagin ) - sockets: Add sock_type_name and tcp_state_name helpers (Cyrill Gorcunov ) - unix: Unify id and ino prints (Cyrill Gorcunov ) - seccomp: Don't exit from __export_restore_thread (Cyrill Gorcunov ) - seccomp: Use own seccomp_metadata_t type (Cyrill Gorcunov ) - action-scripts: check a return code of get_service_fd - kdat: fill kdat by zero-s before initializing it (Andrei Vagin )- files: Don't forget on stipping deleted postfix on linked files (#PSBM-84731)- unix: Improve init_unix_sk_info - unix: Unify printings on peer open (Cyrill Gorcunov ) - unix: Print reverted dir info if only directory provided - unix: Don's spam with warning if nothing to unlink (Cyrill Gorcunov ) - unix: Adjust unix_desc_ops members - unix: Adjust unix_sk_info members - unix: Use uint32_t instead of u32 - unix: Use one word log prefix (Cyrill Gorcunov ) - arch, ppc64: Add missing atomic_dec_and_test helper (Cyrill Gorcunov ) - seccomp: Fix building issue on recent kernels (Cyrill Gorcunov ) - mem: Fix typo in detect_pid_reuse - seccomp: Fix typo in collect_filters - tun: don't leak a file descriptor (Andrei Vagin ) - pie/log: print space after timestamp (Andrei Vagin ) - compel/log: increase a max line length (Andrey Vagin ) - sfd: Don't forget to test sfd_map when closing old fds (#PSBM-83892)- swrk: Don't forget to setup loggin into compel (#PSBM-84029) - cpu: x86 -- Call for cpu_init before kerndat_init (#PSBM-84029)- seccomp: Move changed ptrace flags setup after creds (#PSBM-84198)- seccomp: test,seccomp_filter_threads -- Fix compilation on old distros - seccomp: test -- Open in readonly mode (Cyrill Gorcunov ) - seccomp: test,seccomp_filter_threads -- Use multiple threads (Cyrill Gorcunov ) - seccomp: Dont forget to suspend filtering on threads (#PSBM-78762)- files: define O_TMPFILE (Pavel Tikhomirov ) (#PSBM-83713)- seccomp: test -- Add seccomp_filter_threads (Cyrill Gorcunov ) - seccomp: Add engine to checkpoint per-thread seccomp chains (#PSBM-78762) - seccomp: Add engine to restore per-thread seccomp chains (#PSBM-78762) - seccomp: Fetch seccomp flags if kernel provides (Cyrill Gorcunov ) - seccomp: Move seccomp_info into seccomp.h (Cyrill Gorcunov ) - seccomp: Define log prefix (Cyrill Gorcunov ) - seccomp: compel -- Add PTRACE_SECCOMP_GET_METADATA definition (Cyrill Gorcunov )- pid-reuse: temporary use stat file from cwd if has no parent stats (Pavel Tikhomirov ) (#PSBM-82864)- files: fix clone_service_fd overlap handling (Pavel Tikhomirov ) (#PSBM-83472)- netlink: Change NETLINK_REPAIR number (#PSBM-83415) - files: Fail dump if dump_one_file() fails (Andy Tucker )- sfds: Fix UB in choose_service_fd_base due to calling __builtin_clz(0) (Radoslaw Burny ) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154)- files: Don't fail on cgroup directories mode change (#PSBM-83154)- zdtm: Add tun_ns test (Andrew Vagin ) - net: Dump tun device net id in img (Andrew Vagin ) - tun: Check that net ns of tun device is dumped - tun: Check tun has ioctl() cmd SIOCGSKNS - net: Extrack ioctl() call from kerndat_socket_netns() - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - zdtm: Add a test to check if we can C/R ghost files with no parent dirs. (Vitaly Ostrosablin ) - restore: Do not init fdstore twice - sk-unix: Use unsigned values for inodes (Cyrill Gorcunov ) (#PSBM-82945) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin )- mem: pid-reuse -- Don't fail if no stat image present (Pavel Tikhomirov ) (#PSBM-82806)- vz: pipes -- Restore pipe size in sync mode (#PSBM-82796) - unix: Fix nil dereference in find_queuer_for (#PSBM-82796)- inet: raw -- Add simple socket-raw test (Cyrill Gorcunov ) - inet: raw -- Add restore of raw sockets (Cyrill Gorcunov ) (#PSBM-82683) - inet: raw -- Dump raw sockets options (Cyrill Gorcunov ) - inet: raw -- Add raw sockets into can_dump_inet_sk (Cyrill Gorcunov ) - inet: raw -- Prepare gen_uncon_sk for raw sockets (Cyrill Gorcunov ) - inet: raw -- Reuse already known family and type in gen_uncon_sk (Cyrill Gorcunov ) - inet: raw -- Fetch socket type and check for being raw in can_dump_ipproto (Cyrill Gorcunov ) - inet: raw -- Check for kernel diag module support - inet: raw -- Add constants needed to fetch properties of a raw socket (Cyrill Gorcunov ) - Revert "vz7: sk-inet: Add initial support for raw sockets" - Revert "vz7: test: Add simple socket-raw test" - Revert "vz: test,socket-raw -- Disable for a while" - memory: don't use parent memdump if detected possible pid reuse (Pavel Tikhomirov ) (#PSBM-67502) - stats: add a helper to get stats of parent pre-dump (Pavel Tikhomirov ) (#PSBM-67502) - stats: save uptime to know when dump had happened (Pavel Tikhomirov ) (#PSBM-67502) - parse: add a helper to obtain an uptime (Pavel Tikhomirov ) (#PSBM-67502)- vz: net: Skip IP_FREEBIND for ipv6 SOCK_RAW sockets (Kirill Tkhai ) (#PSBM-82558)- seccomp: test -- Add seccomp_filter_threads (Cyrill Gorcunov ) - seccomp: Allow to dump thread with different seccomps (Cyrill Gorcunov ) - seccomp: Drop no longer needed comment (Cyrill Gorcunov ) - seccomp: Drop filter mode on tsync propagation (Cyrill Gorcunov ) - seccomp: dump_seccomp_filters -- Be ready for chains absence (Cyrill Gorcunov ) - seccomp: collect_filters -- Drop unneeded parent (Cyrill Gorcunov ) - seccomp: Always setup chain flags (Cyrill Gorcunov ) - seccomp: Try use tsync flag if possible (Cyrill Gorcunov ) - seccomp: Add restore of per-thread filters (#PSBM-78762) - seccomp: Don't use BUG_ON in dump_seccomp_filters - seccomp: Rename last_filter to img_filter_pos - seccomp: Speedup entry cleaning - seccomp: Add support of per thread filters on dump - seccomp: Produce thread core records - seccomp: Drop leftover member from pstree - seccomp: Untaggle entries from process_tree - seccomp: Move filter position into seccomp_entry - seccomp: images,core -- Move seccomp data into per-thread origin - seccomp: Use tid_real member name - seccomp: Drop pi_creds from dmp_info - seccomp: Drop pstree_item from find_inherited - seccomp: Define prefix for logging - seccomp: Use collected seccomp_entry to figure out if filter is present - seccomp: Collect seccomp data on per-thread basis - seccomp: Move seccomp_info into seccomp.h - seccomp: Fetch seccomp flags if kernel provides - compel: seccomp -- Add PTRACE_SECCOMP_GET_METADATA data - eventpoll: Take into account number of semi-valid fds when dumping (#PSBM-81809)- eventpoll: Take into account number of semi-valid fds when dumping (#PSBM-81809) - check: Include sys/mount.h before linux/aio_abi.h - log: pr_warn_once -- Fix formatting- version: Lift up version to 200 - tty: ctty -- Add support for multiple inherited ctty opened (#PSBM-76490) - tty: Move session lookup leader into find_session_leader - kdat: Add test for ctty inheritance - tty: Fetch ctty index based on sid - tty: Add is_ctty helper - tty: Don't check for group inheritance - check: Include sys/mount.h before linux/aio_abi.h - log: pr_warn_once -- Fix formatting- inotify: Use fast way of obtaining desired watch descriptor number (#PSBM-81411) - kdat: Add check for inotify() INOTIFY_IOC_SETNEXTWD cmd (#PSBM-81411)- inotify: Fix open_*notify_fd() never fails - inotify: Do not DDOS by debug message on restore watch descriptor- files: change error to warning in linkat_hard error path (Pavel Tikhomirov ) - zdtm: check ghost restores on readonly fs if it is also a ghost in other writable bind (Pavel Tikhomirov ) - files: make convert_path_from_another_mp always return relative path (Pavel Tikhomirov ) (#PSBM-72351)- files-reg: Prepare for sysfs entries mode change (#PSBM-80585)- vz7/cgroup: fix ifpriomap skip (Pavel Tikhomirov )- zdtm: improve tempfs_overmounted test (Pavel Tikhomirov ) - mount: do remaps for child-overmount of another overmount (Pavel Tikhomirov ) - mount: fix try_remap_mount (Pavel Tikhomirov ) - mount: fix mnt_resort_siblings to work as described (Pavel Tikhomirov ) - zdtm: now tempfs_overmounted will pass so remove crfail (Pavel Tikhomirov ) - mount: make open_mountpoint handle overmouts properly (#PSBM-57362) - mount add umount_overmounts helper to make mount visible (Pavel Tikhomirov ) - mount: add __umount_children_overmounts helper to make mount visible (Pavel Tikhomirov ) - mount: add mnt_is_overmounted helper to check mount visibility (Pavel Tikhomirov )- restore: Split restore_one_helper() and wait exiting zombie children- Revert "vz7: bc, restore -- Check for failcounters on error" (#PSBM-80056)- arch, x86: int80 -- Clobber all rX registers (#PSBM-80095)- spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733)- spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: improve prints in spfs_set_mode() and spfs_release_replace() (Stanislav Kinsburskiy ) - spfs: improve SPFS manager start debug and error output (Stanislav Kinsburskiy ) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy )- criu: Don't fail if ghost file has no parent dirs. (Vitaly Ostrosablin )- tty: Use mnt_id for first lookup of toplevel devpts (#PSBM-78460) - ns: Set hookups for all namespaces - ns: Set nested namespaces hookups- Revert "vz7: sfd: Lift up own fd limit on bootup" (#PSBM-67194) - vz7: service: Allow keep_open flag for a WAIT_PID command (#PSBM-58198) - test: static,aio01 -- Use proper type for context - test: sigaltstack -- Drop useless test of a leader stack (#PSBM-76744)- Revert "restore/cgroup: make root task enter cgroups before setup-namespaces action" (#PSBM-76648 #PSBM-76609) - soccr: c/r ipv6 sockets which handles ipv4 connections (#PSBM-72350)- soccr: c/r ipv6 sockets which handles ipv4 connections (#PSBM-72350)- restore/cgroup: make root task enter cgroups before setup-namespaces action (#PSBM-64756)- sk-inet: restore a value of SO_REUSEADDR (#PSBM-75515)- compel: x86,compat -- Make sure mmap fits compat task size (#PSBM-76379) - compel: Do not loose sign of result in compat syscall (#PSBM-76379)- compel: Do not loose sign of result in compat syscall (#PSBM-76379)- mount: export_mnt_ns_roots -- Fix lack on ending EOS- mount: allow overmount on parent with shared group (#PSBM-69501) - mount: fix parent shared group dependency in can_mount_now (#PSBM-69501)- net: execute iptables-restore in a target network namespace (#PSBM-75531) - vz7: crit: Use lu for pagemap images (#PSBM-75112) - vz7: image-desc -- Make pagemap and pagemap-shmem images to use lu (#PSBM-75112)- action-scripts: Export mount namespace roots via CRIU_MNT_NS_ROOTS (#PSBM-71861) - mount: Add export_mnt_ns_roots helper (#PSBM-71861) - build: Rename snapshot to tarball- vz7: libsoccr: ignore data in a sent queue, if a connect is closed (#PSBM-67026) - make: Add snapshot target- scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153)- kdat: if iptables-restore has xtable lock support do wait on lock - Revert "net: Call ip[6]tables-restore with -w parameter"- fsnotify: Filter event mask from old kernels (#PSBM-73140)- net: Call ip[6]tables-restore with -w parameter - Revert "net: Execute ip[6]tables-{save,restore} with -w option"- net: Execute ip[6]tables-{save,restore} with -w option (Kirill Tkhai )- net: Execute ip[6]tables-{save,restore} with -w option- autofs: use safe xatol() and xatoi() helpers (#PSBM-72109) - util: xatol() and xatoi() helpers introduced - Revert "vz7: util: xatol() and xatoi() helpers introduced" - Revert "vz: autofs: use safe xatol() and xatoi() helpers" - vz: autofs: use safe xatol() and xatoi() helpers (#PSBM-72109) - vz7: util: xatol() and xatoi() helpers introduced - zdtm: Implement different per-thread credentials testcase- vz: autofs: use safe xatol() and xatoi() helpers (#PSBM-72109) - vz7: util: xatol() and xatoi() helpers introduced - zdtm: Implement different per-thread credentials testcase- vz7: vdso: Map vdso with arch_prctl() if kdat.can_map_vdso (#PSBM-71884) - vz7: vdso/restorer: Don't map compatible vdso if it was unmapped (#PSBM-71884) - vz7: vdso: Don't park vdso/vvar if restoree doesn't have them (#PSBM-71884) - vz7: kdat: Add test for presence of vdso mapping API (#PSBM-71884) - vz7: vdso: Don't read pagemap or parse symtable (#PSBM-71884)- vz7: tests: do not try to read more than packet in AutoFS test (#PSBM-71078) - Revert "vz7: zdtm: print autofs request size, if read more than expected" - Revert "vz7: zdtm: fix autofs tes compilation" - Revert "vz7: zdtm: fix package memory allocation in autofs.c"- vz7: zdtm: fix package memory allocation in autofs.c (#PSBM-71078) - vz7: tty -- Fix TTY_BITMAP_BITS - vz7: image -- Add compat layer for Core entry (#PSBM-67671)- vz7: sk-unix -- Drop redundant unix_sk_cinfo reference- vz7: sk-tcp: Print libsoccr_save() error message - vz7: zdtm: fix autofs tes compilation (#PSBM-71041) - tty: collect_one_tty_info_entry -- Move tracking setup into main cycle (#PSBM-70929) - tty: collect_one_tty -- Make sure the index is in range - tty: tty_has_active_pair -- Make sure no overflow happened - tty: tty_test_and_set -- Make sure no overflow happened - tty: Fix __tty_verify_active_pairs - tty: Use macros for bitmap length - vz7: images -- Add task_core_entry_vz730 stub- Rebase on CRIU v3.4 (#PSBM-70650)- zdtm: print autofs request size, if read more than expected (#PSBM-70345)- test: mount -- Add bind-mount-unix - sk-unix: Handle bindmounted dgram sockets on restore (#PSBM-69473) - sk-unix: Save mnt_id for bindmounted entries (#PSBM-69473) - versions: Increase to not conflict with hotfix series- version: Force increase for hf1 - fsnotify: open_handle -- Handle multiple mounts with same s_dev (#PSBM-69473) - Log into /var/log/mesages large ghost files dumps (#PSBM-68320)- fsnotify: open_handle -- Handle multiple mounts with same s_dev (#PSBM-69473) - Log into /var/log/mesages large ghost files dumps (#PSBM-68320)- pie, restorer: Fix typo in wait_helpers (#PSBM-69378)- page-xfer: Make error message more verbose (#PSBM-68738)- Revert "sfd: Reserve service descriptors early" (#PSBM-69279 #PSBM-69259) - Revert "sfd: Don't forget to close pre-opened tty service fd"- sfd: Don't forget to close pre-opened tty service fd (#PSBM-69211)- sfd: Reserve service descriptors early (#PSBM-68738)- vz7/cgroup: Skip for awhile ifpriomap property restore (#PSBM-66683)- vz7: bc, restore -- Check for failcounters on error (#PSBM-68868) - vz7: criu: update second "iptables restore" helper to work in VE#0 (#PSBM-58574) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint- vz7: criu: update second "iptables restore" helper to work in VE#0 (#PSBM-58574) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint- vz7: criu: threads -- Allow uids/gids being different (#PSBM-68756) - vz7: sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (#PSBM-68062) - vz7: mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (#PSBM-68062)- net: do iptables restore in ve0 (#PSBM-58574) - net: iptables_tool_{dump,restore} helpers introduced - criu: export join_ve helper- restore: Fix deadlock when helper's child dies (#PSBM-67930) - page-xfer: handle a case when splice returns zero (#PSBM-68732)- mount: allow any types of NFS mount for a while (#PSBM-68663)- mounts: support NFS bind-mounts in the same shared group (#PSBM-68663)- criu: don't abort criu in lookup_create_item() (#PSBM-68607) - dump: set pid->state for threads (#PSBM-68585) - mounts: support only shared NFS mounts in inits mount namespace (#PSBM-66945)- mount: Switch user_ns before mount binfmt_misc (#PSBM-68377) - ve: Call binfmt_misc-mounting code in call_in_child_process() - util: Implement clone_in_child_process() helper - clone_noasan: Allow to create CLONE_VM|CLONE_VFORK processes - mount: Move binfmt_misc-mounting code to separate function - mount: Consider EBUSY binfmt_misc mount return as error- vz7: files -- Don't access value from stack in outer contex - mount: Don't search for siblings inside self (#PSBM-67723) - vz7: vdso: Map vdso with arch_prctl() if kdat.can_map_vdso (#PSBM-67017) - vdso/restorer: Don't map compatible vdso if it was unmapped - vdso: Don't park vdso/vvar if restoree doesn't have them - kdat: Add test for presence of vdso mapping API - vz7: vdso: Don't read pagemap or parse symtable (#PSBM-67017) - vdso: Introduce type for checking vdso hint in maps file - vz7: sk-queue: fix non-fatal print log level - vz7: netlink: fix warning print- vz7: vdso: Map vdso with arch_prctl() if kdat.can_map_vdso (#PSBM-67017) - vdso/restorer: Don't map compatible vdso if it was unmapped - vdso: Don't park vdso/vvar if restoree doesn't have them - kdat: Add test for presence of vdso mapping API - vz7: vdso: Don't read pagemap or parse symtable (#PSBM-67017) - vdso: Introduce type for checking vdso hint in maps file - vz7: sk-queue: fix non-fatal print log level - vz7: netlink: fix warning print- cr-service: Init page_ids laterly - images: Initialize images earlier (before page-server starts) (#PSBM-67335) - pages: Share page_ids between ns dump-helpers (#PSBM-67335) - vz7: mount: check for mount is unsupported only on dump - vz7: files-reg: forbid migration of opened device files on NFS (#PSBM-55590)- images: Initialize images earlier (before page-server starts) (#PSBM-67335) - pages: Share page_ids between ns dump-helpers (#PSBM-67335) - vz7: mount: check for mount is unsupported only on dump - vz7: files-reg: forbid migration of opened device files on NFS (#PSBM-55590)- pages: Share page_ids between ns dump-helpers (#PSBM-67335) - vz7: mount: check for mount is unsupported only on dump - vz7: files-reg: forbid migration of opened device files on NFS (#PSBM-55590)- scripts: cleanup error output in systemd-autofs-restart.sh (#PSBM-67544) - scripts: check service mountpoint is not empty in systemd-autofs-restart.sh (#PSBM-67544)- mem: Don't assume guard page is returned in procfs with new kernels (#PSBM-67433) - kerndat: Detect if we have guard page mangle in procfs output- mounts: print NFS nested mountpoint info (#PSBM-67466) - mounts: add unsupported mount helper (#PSBM-67466)- Drop libcompel explicit dependency from criu- Split libcompel and libcompel-devel to subpackages- spfs: fix usage of mi->ns_mountpoint (#PSBM-66943) - spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (#PSBM-66943)- Revert "vz7: sfd: Move service fd helpers into separate file" (#PSBM-65382) - Revert "vz7: sfd: Rework install, clone helpers to use fcntl" (#PSBM-65382) - Revert "vz7: sfd -- Don't forget to skip reserved fds on clone" (#PSBM-65382) - files: remove extra newline from a message- mount: don't use phys_stat_resolve_dev() in open_mount() (#PSBM-66981) - vz7: tests: shm-unaligned -- Use unique key for simultaneous run (Cyrill Gorcunov ) (#PSBM-66764)- scripts: use absolute binaries paths systemd-autofs-restart.sh (#PSBM-66967)- zdtm: run page-server via rpc - lib/py: allow to execute page-server as a child process - service: allow to execute page-server as a child process - scripts: use absolute binaries paths nfs-ports-allow.sh (#PSBM-66901)- ia32/feature-test: Don't check i686 libraries presence - nmk: Provide try-asm build check function - mount: Find NS_ROOT for cr-time mount on restore (#PSBM-66457)- vz7: sfd -- Don't forget to skip reserved fds on clone (#PSBM-66874)- Revert "vz7: Unlimit self RLIMIT_NOFILE resource for dump/predump" - Revert "vz7: restore -- Lift up own file limits" - vz7: sfd: Lift up own fd limit on bootup (#PSBM-65382) - vz7: kdat: Add fetching files stat (#PSBM-65382) - vz7: sfd: Rework install, clone helpers to use fcntl (#PSBM-65382) - vz7: sfd: Move service fd helpers into separate file (#PSBM-65382) - x86/ia32: fix build with DEBUG=1 (Dmitry Safonov ) - vdso/compat: Don't unmap missing vdso/vvar vmas (Dmitry Safonov ) - pie/vdso: return back ELF header mismatch error (Dmitry Safonov ) - ia32/futex: restore compat_robust_list (Dmitry Safonov ) - ia32/futex: add dumping compat_robust_list (Dmitry Safonov ) - restorer: remove always true `has_futex' arg (Dmitry Safonov )- scripts: skip spfs mount points in systemd-autofs-restart.sh (#PSBM-66285) - scripts: check service mount point in "skip_service" systemd-autofs- restart.sh - scripts: "skip_service" helper introduced in systemd-autofs-restart.sh - vz7: tests -- Drop _GNU_SOURCE from source code (Cyrill Gorcunov ) (#PSBM-66278)- vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Cyrill Gorcunov ) - make: Report dependencies absence more exactly - ia32: Rename has_compat_sigreturn => compat_cr - ia32: Clearify if 32bit C/R is compile-disabled- vz7: Makefile.version -- Adjust number for new series - vz7: Makefile: Fix scripts installation - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (#PSBM-65483) - vz7: tty: Make sure no /dev/tty inheritance exist (#PSBM-65637) - vz7: filesystems: binfmt -- Add debug print on dumping stage (#PSBM-65185) - vz7: test: sk-unix01 -- Make sure the dir with ghost files are empty - vz7: sk-unix: Don't wait on socketpair (#PSBM-65051) - vz7: sk-unix -- Add info print about slave peers - vz7: sk-unix -- Adjust default dgram qlen for systemd sake (#PSBM-64628) - vz7: sk-unix -- Fix typo in namelen comparision (#PSBM-64715) - vz7: sk-queue: Add missing newline into log - vz7: restore_sk_queue -- Show how many bytes already sent (#PSBM-64628) - vz7: test: sk-unix01 -- Fix compilation - vz7: sk-unix: Don't append ghost postfix on subsequent checkpoint (#PSBM-55992) - test: Add sk-unix01 test - vz7: sk-unix: Add ability to restore sockets with deleted vfs addresses - vz7: sk-unix: Print cwd been restored if @name_dir is present - vz7: sk-unix: Don't warn if nothing to unlink - vz7: sk-unix: Collect deleted identical addresses in the queues - vz7: sk-unix: Make USK_ flags in shift form - vz7: sk-unix: Drop empty line at eof - vz7: sk-unix: Use add_post_prepare_cb_once helper - vz7: sk-unix: Drop empty line - vz7: sk-unix: Use generic xptr_pull in dump_one_unix_fd - vz7: sk-unix: Use native types in unix_sk_info - vz7: sk-unix: Adjust unix_sk_info members - vz7: sk-unix: Adjust unix_sk_cinfo members - vz7: sk-unix: Make can_dump_unix_sk being boolean - vz7: pipes: Use add_post_prepare_cb_once - vz7: tty: Use add_post_prepare_cb_once - vz7: restore: Add add_post_prepare_cb_once helper - sk-queue: Don't fail if we're dumping dead process queued creds (#PSBM-62778) - vz7: sk-queue -- Show the creds we're sending (#PSBM-64009) - vz7: sk-queue -- Show peers in hex form (#PSBM-64009) - vz7: seize -- Wait for seize in thawed state (#PSBM-63841) - vz7: freezer -- Add set_freezer_state helper (#PSBM-63841) - vz7: epoll -- Dont fail on dup'ed fd restore (#PSBM-63850) - vz7: dump: Any non-negative return code of run_scripts means an error (#PSBM-62583) - vz7: sk-unix -- Restore qlen before pushing queued data back (#PSBM-63762) - vz7: sockets: Separate socket buffer size setting into a helper (#PSBM-63762) - vz7: seize -- Show detached pid in freezer_detach - vz7: Show status of uninterruptable task (#PSBM-63211) - vz7: files -- Select proper master fd when collecting fd (#PSBM-63355) - vz7: pstree -- Introduce pstree_pid_cmp helper - vz7: page-xfer -- Handle partial splicing (#PSBM-63161) - vz7: ucred -- Drop packets from dead processes (#PSBM-62603) - vz7: epoll -- Use real file transferred for target fds check (#PSBM-62108) - vz7: sk-queue -- Add support of ucreds in unix sockets (#PSBM-61095) - test: Add ucreds test - vz7: pagemap -- Use ssize_t type where appropriate (#PSBM-62199) - vz7: compel -- Use unsigned long for arguments (#PSBM-61961) - vz7: dump -- Set file limits back before fetching them into dump (#PSBM-61812) - vz7: Drop redundant comment - vz7: restore -- Lift up own file limits (#PSBM-63094) - vz7: Unlimit self RLIMIT_NOFILE resource for dump/predump (#PSBM-63002) - vz7: Unlimit and limit file number resource for c/r sake (#PSBM-61573) - vz7: kdat: Add fetching files stat - vz7: Don't forget to restore memory cgroup limits on pre-dupms (#PSBM-61534 #PSBM-53593) - vz7: Zap file size checking for "atop" (#PSBM-61459) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (#PSBM-61248) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (#PSBM-60643) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 - vz7: socket: don't restore ucred from kernel messages - vz7: netlink: dump/restore netlink options - vz7: netlink: restore queues and only then restore opts - vz7: cgroup -- Rename net_cls to net_cls,net_prio on the fly (#PSBM-60606 #PSBM-61459 #PSBM-61851) - vz7: mount -- Add lookup_first_fstype helper - vz7: criu: add more information about control messages (#PSBM-60643) - vz7: test: check ucred for netlink messages - vz7: netlink: dump and restore ucred-s for netlink messages (#PSBM-59339) - vz7: eventpoll: Skip inaccessible descriptors (#PSBM-60042) - vz7: pipes -- Restore pipe size via userns call (#PSBM-59829) - vz7: mount: fix mounting non-root shared mounts (#PSBM-55494) - vz7: test: pty05 -- Add testing of multiple devpts instance - vz7: tty -- Don't fail if @mnt_id is not present in images (#PSBM-60606) - vz7: tty: Fix devpts mounts resolving (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (#PSBM-58616) - vz7: tty: Save mount ids for terminals into image - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper - vz7: tty: Save task current terminal if present - vz7: Unlimit UBC when chekpointing (#PSBM-53593) - vz7: restore -- Enter destination veX once usernsd is up (#PSBM-56407) - vz7: Make get_dumpee_veid been exported - vz7: zdtm: check a netlink socket with in-kernel state - vz7: netlink: allow to dump netlink sockets with in-progress operations - vz7: sk-inet: Fix lookup for raw sockets (#PSBM-55835) - vz7: shmem: skip zero pages - vz7: shmem: don't write zero pages into an image - vz7: seccomp -- Switch to prctl interface if syscall is not implemented (#PSBM-55593) - vz7: ghost files: don't check ghost size if it's an NFS path (#PSBM-56159) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED - vz7: test: Add simple socket-raw test - vz7: sk-inet: Add initial support for raw sockets (#PSBM-51614) - vz7: Don't use executable stacks in @syscall_ip (#PSBM-55989) - vz7: util: Add rmdirp helper - vz7: mount: handle error from restore_shared_options() - vz7: seize: Add additional diagnose messages (#PSBM-53929) - vz7: mount: bind-mount autofs mounts via a file descriptors (#PSBM-53194) - vz7: spfs: create control socket in /run/spfs-manager/ (#PSBM-59199) - vz7: spfs: move SPFS manager to corresponding container's dump directory - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (#PSBM-52353) - vz7: mnt -- Fetch VEID from cgroup for migration sake (#PSBM-52372) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (#PSBM-52320) - vz7: cg: Don't dump devices.list (#PSBM-50551) - vz7: scripts: remove obsolete scripts - vz7: cr-restore: use spfs helpers to control spfs manager - vz7: spfs: add new helpers to replces bash scripts calls - vz7: files-reg: move ghost_apply_metadata out of create_ghost_dentry - vz7: mount: create a temporary mount to restore shared and master groups (#PSBM-47508) - vz7: files-reg: fix silly-renamed files migration - vz7: files-reg: improve spfs_file helper - vz7: Makefile: install spfs-release-replace.sh script (#PSBM-49726) - vz7: files: Allow to dump ploopX files opened (#PSBM-49723) - vz7: spfs: remove obsolete code - vz7: files-reg: migrate "spfs" files as ghost-ones - vz7: files-reg: conditionally dump content in dump_ghost_file - vz7: util: mkdirname helper introduced - vz7: files-reg: split create_ghost - vz7: files_reg: remove unused "struct ghost_file" from mkreg_ghost prototype - vz7: dump: Show task comm early - vz7: spfs: do not tolerate file existence on creation - vz7: spfs: fix freeze cgroup path discovery - vz7: cgroup: new_cg_root_get helper introduced - vz7: criu: remove NFS unlinked files restriction - vz7: files-reg: migrate spfs unlinked file as "link remap" objects - vz7: files-reg: migrate spfs file as "link remap" objects - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file - vz7: spfs: explicitly pass size and mode to spfs_create_file - vz7: link_remap: do not create excessive links for a single file - vz7: mount: forbid dumping overmounted NFS (#PSBM-48620) - vz7: zdtm: add a new test to check netlink sockets with queued data - vz7: netlink: restore data in a received queue for netlink sockets (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages - vz7: check: check whether NETLINK_REPAIR is supported or not - vz7: netlink: request flags for netlink sockets - vz7: files-reg: forbid to dump unlinked NFS files - vz7: proc_parse: forbid dumping NFS remote locks - vz7: files-reg: remove "unreachable" protobuf field as redundant - vz7: files-reg: create spfs file in case of parent mount is SPFS - vz7: files-reg: do not create spfs file in case of external resource - vz7: spfs: remove "ns_list" option from "replace" command as obsolete - vz7: compel -- Add support for vz7 specific cpuid masking (#PSBM-47748 #PSBM-49423) - vz7: scripts: remove bogus command substitution in nfs-ports-allow.sh (#PSBM-44207) - vz7: scripts: restart all systemd automount services (#PSBM-46672) - vz7: sk-unix: Fix path resolving for sockets with abs symlinks in paths - vz7: util: Add cr_set_root/cr_restore_root helpers - vz7: spfs: do not treat existent file as error in create_reg_file - vz7: scripts: spfs-release-replace.sh introduced - vz7: criu: spfs -- Fixup various nits for NFS sake - vz7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (#PSBM-26967) - vz7: mount: Add support for NFSv4 - vz7: protobuf/mnt.proto: NFSv4 type added - vz7: mount: add support for NFS - vz7: protobuf/mnt.proto: NFS type added - vz7: mount: add support for SUNRPC Pipefs - vz7: protobuf/mnt.proto: RPC Pipefs type added - vz7: scripts: allow-nfs-ports.sh added - vz7: action-scripts: ACT_POST_NET_LOCK stage added - vz7: scripts: spfs-change-mode.sh added - vz7: action scripts: set spfs environment in run_scripts - vz7: regular files: create temporary spfs file if marked as unreachable - vz7: spfs: delayed mounts facility introduced - vz7: cr-restore: declare SPFS_MNGR_SK service fd - vz7: regular files: protobuf "unreachable" field introduced - vz7: filemap: collect mapped file fs type - vz7: reg_file_entry: add "mode" variable - vz7: aio: Don't fail if kernel does not support aio wait (#PSBM-42488) - vz7: Wait aio pending requests (#PSBM-42488) - vz7: criu: tty -- Restore tty params synchronously (#PSBM-46382) - vz7: Merge vanilla 3.0- vz7: Makefile.version -- Adjust number for new series - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (#PSBM-65483) - vz7: tty: Make sure no /dev/tty inheritance exist (#PSBM-65637) - vz7: filesystems: binfmt -- Add debug print on dumping stage (#PSBM-65185) - vz7: test: sk-unix01 -- Make sure the dir with ghost files are empty - vz7: sk-unix: Don't wait on socketpair (#PSBM-65051) - vz7: sk-unix -- Add info print about slave peers - vz7: sk-unix -- Adjust default dgram qlen for systemd sake (#PSBM-64628) - vz7: sk-unix -- Fix typo in namelen comparision (#PSBM-64715) - vz7: sk-queue: Add missing newline into log - vz7: restore_sk_queue -- Show how many bytes already sent (#PSBM-64628) - vz7: test: sk-unix01 -- Fix compilation - vz7: sk-unix: Don't append ghost postfix on subsequent checkpoint (#PSBM-55992) - test: Add sk-unix01 test - vz7: sk-unix: Add ability to restore sockets with deleted vfs addresses - vz7: sk-unix: Print cwd been restored if @name_dir is present - vz7: sk-unix: Don't warn if nothing to unlink - vz7: sk-unix: Collect deleted identical addresses in the queues - vz7: sk-unix: Make USK_ flags in shift form - vz7: sk-unix: Drop empty line at eof - vz7: sk-unix: Use add_post_prepare_cb_once helper - vz7: sk-unix: Drop empty line - vz7: sk-unix: Use generic xptr_pull in dump_one_unix_fd - vz7: sk-unix: Use native types in unix_sk_info - vz7: sk-unix: Adjust unix_sk_info members - vz7: sk-unix: Adjust unix_sk_cinfo members - vz7: sk-unix: Make can_dump_unix_sk being boolean - vz7: pipes: Use add_post_prepare_cb_once - vz7: tty: Use add_post_prepare_cb_once - vz7: restore: Add add_post_prepare_cb_once helper - sk-queue: Don't fail if we're dumping dead process queued creds (#PSBM-62778) - vz7: sk-queue -- Show the creds we're sending (#PSBM-64009) - vz7: sk-queue -- Show peers in hex form (#PSBM-64009) - vz7: seize -- Wait for seize in thawed state (#PSBM-63841) - vz7: freezer -- Add set_freezer_state helper (#PSBM-63841) - vz7: epoll -- Dont fail on dup'ed fd restore (#PSBM-63850) - vz7: dump: Any non-negative return code of run_scripts means an error (#PSBM-62583) - vz7: sk-unix -- Restore qlen before pushing queued data back (#PSBM-63762) - vz7: sockets: Separate socket buffer size setting into a helper (#PSBM-63762) - vz7: seize -- Show detached pid in freezer_detach - vz7: Show status of uninterruptable task (#PSBM-63211) - vz7: files -- Select proper master fd when collecting fd (#PSBM-63355) - vz7: pstree -- Introduce pstree_pid_cmp helper - vz7: page-xfer -- Handle partial splicing (#PSBM-63161) - vz7: ucred -- Drop packets from dead processes (#PSBM-62603) - vz7: epoll -- Use real file transferred for target fds check (#PSBM-62108) - vz7: sk-queue -- Add support of ucreds in unix sockets (#PSBM-61095) - test: Add ucreds test - vz7: pagemap -- Use ssize_t type where appropriate (#PSBM-62199) - vz7: compel -- Use unsigned long for arguments (#PSBM-61961) - vz7: dump -- Set file limits back before fetching them into dump (#PSBM-61812) - vz7: Drop redundant comment - vz7: restore -- Lift up own file limits (#PSBM-63094) - vz7: Unlimit self RLIMIT_NOFILE resource for dump/predump (#PSBM-63002) - vz7: Unlimit and limit file number resource for c/r sake (#PSBM-61573) - vz7: kdat: Add fetching files stat - vz7: Don't forget to restore memory cgroup limits on pre-dupms (#PSBM-61534 #PSBM-53593) - vz7: Zap file size checking for "atop" (#PSBM-61459) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (#PSBM-61248) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (#PSBM-60643) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 - vz7: socket: don't restore ucred from kernel messages - vz7: netlink: dump/restore netlink options - vz7: netlink: restore queues and only then restore opts - vz7: cgroup -- Rename net_cls to net_cls,net_prio on the fly (#PSBM-60606 #PSBM-61459 #PSBM-61851) - vz7: mount -- Add lookup_first_fstype helper - vz7: criu: add more information about control messages (#PSBM-60643) - vz7: test: check ucred for netlink messages - vz7: netlink: dump and restore ucred-s for netlink messages (#PSBM-59339) - vz7: eventpoll: Skip inaccessible descriptors (#PSBM-60042) - vz7: pipes -- Restore pipe size via userns call (#PSBM-59829) - vz7: mount: fix mounting non-root shared mounts (#PSBM-55494) - vz7: test: pty05 -- Add testing of multiple devpts instance - vz7: tty -- Don't fail if @mnt_id is not present in images (#PSBM-60606) - vz7: tty: Fix devpts mounts resolving (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (#PSBM-58616) - vz7: tty: Save mount ids for terminals into image - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper - vz7: tty: Save task current terminal if present - vz7: Unlimit UBC when chekpointing (#PSBM-53593) - vz7: restore -- Enter destination veX once usernsd is up (#PSBM-56407) - vz7: Make get_dumpee_veid been exported - vz7: zdtm: check a netlink socket with in-kernel state - vz7: netlink: allow to dump netlink sockets with in-progress operations - vz7: sk-inet: Fix lookup for raw sockets (#PSBM-55835) - vz7: shmem: skip zero pages - vz7: shmem: don't write zero pages into an image - vz7: seccomp -- Switch to prctl interface if syscall is not implemented (#PSBM-55593) - vz7: ghost files: don't check ghost size if it's an NFS path (#PSBM-56159) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED - vz7: test: Add simple socket-raw test - vz7: sk-inet: Add initial support for raw sockets (#PSBM-51614) - vz7: Don't use executable stacks in @syscall_ip (#PSBM-55989) - vz7: util: Add rmdirp helper - vz7: mount: handle error from restore_shared_options() - vz7: seize: Add additional diagnose messages (#PSBM-53929) - vz7: mount: bind-mount autofs mounts via a file descriptors (#PSBM-53194) - vz7: spfs: create control socket in /run/spfs-manager/ (#PSBM-59199) - vz7: spfs: move SPFS manager to corresponding container's dump directory - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (#PSBM-52353) - vz7: mnt -- Fetch VEID from cgroup for migration sake (#PSBM-52372) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (#PSBM-52320) - vz7: cg: Don't dump devices.list (#PSBM-50551) - vz7: scripts: remove obsolete scripts - vz7: cr-restore: use spfs helpers to control spfs manager - vz7: spfs: add new helpers to replces bash scripts calls - vz7: files-reg: move ghost_apply_metadata out of create_ghost_dentry - vz7: mount: create a temporary mount to restore shared and master groups (#PSBM-47508) - vz7: files-reg: fix silly-renamed files migration - vz7: files-reg: improve spfs_file helper - vz7: Makefile: install spfs-release-replace.sh script (#PSBM-49726) - vz7: files: Allow to dump ploopX files opened (#PSBM-49723) - vz7: spfs: remove obsolete code - vz7: files-reg: migrate "spfs" files as ghost-ones - vz7: files-reg: conditionally dump content in dump_ghost_file - vz7: util: mkdirname helper introduced - vz7: files-reg: split create_ghost - vz7: files_reg: remove unused "struct ghost_file" from mkreg_ghost prototype - vz7: dump: Show task comm early - vz7: spfs: do not tolerate file existence on creation - vz7: spfs: fix freeze cgroup path discovery - vz7: cgroup: new_cg_root_get helper introduced - vz7: criu: remove NFS unlinked files restriction - vz7: files-reg: migrate spfs unlinked file as "link remap" objects - vz7: files-reg: migrate spfs file as "link remap" objects - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file - vz7: spfs: explicitly pass size and mode to spfs_create_file - vz7: link_remap: do not create excessive links for a single file - vz7: mount: forbid dumping overmounted NFS (#PSBM-48620) - vz7: zdtm: add a new test to check netlink sockets with queued data - vz7: netlink: restore data in a received queue for netlink sockets (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages - vz7: check: check whether NETLINK_REPAIR is supported or not - vz7: netlink: request flags for netlink sockets - vz7: files-reg: forbid to dump unlinked NFS files - vz7: proc_parse: forbid dumping NFS remote locks - vz7: files-reg: remove "unreachable" protobuf field as redundant - vz7: files-reg: create spfs file in case of parent mount is SPFS - vz7: files-reg: do not create spfs file in case of external resource - vz7: spfs: remove "ns_list" option from "replace" command as obsolete - vz7: compel -- Add support for vz7 specific cpuid masking (#PSBM-47748 #PSBM-49423) - vz7: scripts: remove bogus command substitution in nfs-ports-allow.sh (#PSBM-44207) - vz7: scripts: restart all systemd automount services (#PSBM-46672) - vz7: sk-unix: Fix path resolving for sockets with abs symlinks in paths - vz7: util: Add cr_set_root/cr_restore_root helpers - vz7: spfs: do not treat existent file as error in create_reg_file - vz7: scripts: spfs-release-replace.sh introduced - vz7: criu: spfs -- Fixup various nits for NFS sake - vz7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (#PSBM-26967) - vz7: mount: Add support for NFSv4 - vz7: protobuf/mnt.proto: NFSv4 type added - vz7: mount: add support for NFS - vz7: protobuf/mnt.proto: NFS type added - vz7: mount: add support for SUNRPC Pipefs - vz7: protobuf/mnt.proto: RPC Pipefs type added - vz7: scripts: allow-nfs-ports.sh added - vz7: action-scripts: ACT_POST_NET_LOCK stage added - vz7: scripts: spfs-change-mode.sh added - vz7: action scripts: set spfs environment in run_scripts - vz7: regular files: create temporary spfs file if marked as unreachable - vz7: spfs: delayed mounts facility introduced - vz7: cr-restore: declare SPFS_MNGR_SK service fd - vz7: regular files: protobuf "unreachable" field introduced - vz7: filemap: collect mapped file fs type - vz7: reg_file_entry: add "mode" variable - vz7: aio: Don't fail if kernel does not support aio wait (#PSBM-42488) - vz7: Wait aio pending requests (#PSBM-42488) - vz7: criu: tty -- Restore tty params synchronously (#PSBM-46382) - vz7: Merge vanilla 3.0- vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (#PSBM-65483)- vz7: tty: Make sure no /dev/tty inheritance exist (#PSBM-65637)- vz7: fs: Populate opts.has_binfmt_misc on dump only (#PSBM-65367)- vz7: filesystems: binfmt -- Add debug print on dumping stage (#PSBM-65185)- vz7: test: sk-unix01 -- Make sure the dir with ghost files are empty - vz7: sk-unix: Don't wait on socketpair (#PSBM-65051) - vz7: sk-unix -- Add info print about slave peers- vz7: sk-unix -- Adjust default dgram qlen for systemd sake (#PSBM-64628) - Revert "vz7: sockets: Separate socket buffer size setting into a helper" - Revert "vz7: sk-unix -- Restore qlen before pushing queued data back" - Revert "sk-queue: Queue length must be sync"- vz7: sk-unix -- Fix typo in namelen comparision (#PSBM-64715) - vz7: sk-queue: Add missing newline into log - vz7: restore_sk_queue -- Show how many bytes already sent - vz7: test: sk-unix01 -- Fix compilation- vz7: sk-unix: Don't append ghost postfix on subsequent checkpoint (#PSBM-55992)- Revert "unix: switch into the root mount namespace before cleaning stale sockets" (#PSBM-64369)- test: Add sk-unix01 test - vz7: sk-unix: Add ability to restore sockets with deleted vfs addresses (#PSBM-55992) - vz7: sk-unix: Print cwd been restored if @name_dir is present - vz7: sk-unix: Don't warn if nothing to unlink - vz7: sk-unix: Collect deleted identical addresses in the queues - vz7: sk-unix: Make USK_ flags in shift form - vz7: sk-unix: Drop empty line at eof - vz7: sk-unix: Use add_post_prepare_cb_once helper - vz7: sk-unix: Drop empty line - vz7: sk-unix: Use generic xptr_pull in dump_one_unix_fd - vz7: sk-unix: Use native types in unix_sk_info - vz7: sk-unix: Adjust unix_sk_info members - vz7: sk-unix: Adjust unix_sk_cinfo members - vz7: sk-unix: Make can_dump_unix_sk being boolean - vz7: pipes: Use add_post_prepare_cb_once - vz7: tty: Use add_post_prepare_cb_once - vz7: restore: Add add_post_prepare_cb_once helper - unix: a unix name can be a non-null terminated string - unix: Do pr_perror() before cleanup - files: Sanitize helpers for scattering two-headed files - unix: Factor out common parts restoration (v2) - unix: Fix tail processing for peer-less sockets - unix: don't leak a file descriptor - unix: switch into the root mount namespace before cleaning stale sockets - Revert "vz7: sk-unix: Restore deleted sockets together with removed dirs"- sk-queue: Don't fail if we're dumping dead process queued creds (#PSBM-62778)- sk-queue: Queue length must be sync (#PSBM-64009) - vz7: sk-queue -- Show the creds we're sending (#PSBM-64009) - vz7: sk-queue -- Show peers in hex form (#PSBM-64009)- vz7: seize -- Wait for seize in thawed state (#PSBM-63841) - vz7: freezer -- Add set_freezer_state helper (#PSBM-63841) - vz7: epoll -- Dont fail on dup'ed fd restore (#PSBM-63850)- vz7: dump: Any non-negative return code of run_scripts means an error (#PSBM-62583)- vz7: sk-unix -- Restore qlen before pushing queued data back (#PSBM-63762) - vz7: sockets: Separate socket buffer size setting into a helper (#PSBM-63762) - vz7: seize -- Show detached pid in freezer_detach- vz7: seize -- Make sure there is enough space for eol on debug print (#PSBM-63211) - vz7: Show status of uninterruptable task (#PSBM-63211)- vz7: files -- Select proper master fd when collecting fd (#PSBM-63355) - vz7: pstree -- Introduce pstree_pid_cmp helper - vz7: page-xfer -- Handle partial splicing (#PSBM-63161)- vz7: restore -- Lift up own file limits (#PSBM-63094) - vz7: Make rlimit_limit_nofile_self being global- vz7: Unlimit self RLIMIT_NOFILE resource for dump/predump (#PSBM-63002) - Revert "vz7: Increase the number of files limit"- vz: zdtm/mnt_ext_auto: add different bind-mounts of external mount (#PSBM-46753) - vz7: mount: migrate bindmounts of external mounts (#PSBM-46753) - vz7: mount: save ext_real_root for external mounts (#PSBM-46753) - vz7: mount: remove excess mi->external checks - vz7: mount: fix confusing naming- vz7: ucred -- Drop packets from dead processes (#PSBM-62603)- vz7: epoll -- Use real file transferred for target fds check (#PSBM-62108) - vz7: epoll: Report error instead of BUG (#PSBM-62108)- vz7: sk-queue -- Add support of ucreds in unix sockets (#PSBM-61095) - test: Add ucreds test- vz7: parasite-syscall -- Move rlimit_limit_nofile into parasite_cure_remote (#PSBM-62267)- vz7: spfs: create control socket in /run/spfs-manager/ (#PSBM-59199) - vz7: pagemap -- Use ssize_t type where appropriate (#PSBM-62199) - pagemap: Support async pages reading by chunks (v2)- fsnotify: skip non-direcory mounts (#PSBM-57362)- test: Add shutdown'ed UDP socket test - sk-inet: Add support for shutdown'ed UDP/UDPlite sockets (#PSBM-61550)- vz7: parasite -- Use long for memory size (#PSBM-61961) - vz7: dump -- Set file limits back before fetching them into dump (#PSBM-61812) - vz7: parasite-syscall -- Export rlimit_[un]limit_nofile - vz7: Unlimit and limit file number for dump stage only (#PSBM-61812)- vz7: dump -- Set file limits back before fetching them into dump (#PSBM-61812) - vz7: parasite-syscall -- Export rlimit_[un]limit_nofile - vz7: Unlimit and limit file number for dump stage only (#PSBM-61812)- vz7: Unlimit and limit file number for dump stage only (#PSBM-61812)- vz7: Fix net_cls controllers transition (#PSBM-61851 #PSBM-60606) - vz7: Drop redundant comment - vz7: Drop debug leftover from 0a3713ab2c44f- vz7: Unlimit and limit file number resource for c/r sake (#PSBM-61573) - vz7: kdat: Add fetching files stat - vz7: parasite: Switch to map-files interface is memfd failed - vz7: memfd: Print detailed error if memfd_create failed - Revert "vz7: Dump only known controllers" (#PSBM-61768)- Revert "vz7: Dump only known controllers" (#PSBM-61768)- vz7: Don't forget to restore memory cgroup limits on pre-dupms (#PSBM-61534 #PSBM-53593)- vz7: Don't rename net_cls if no net_cls,net_prio present (#PSBM-60606 #PSBM-61459) - vz7: Zap file size checking for "atop" (#PSBM-61459)- vz7: dump_packet_cmsg -- Allow to receive timestamp data (#PSBM-61248) - vz7: restore_sk_queue -- Drop trailing tabs - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (#PSBM-61248)- vz7: systemd-autofs-restart.sh: fix issue with removed check_fs_type reference (#PSBM-60980) - vz7: Fix type conversion in dump_packet_cmsg- vz7: netlink: avoid ENOBUF when a netlink queue is dumped (#PSBM-60643) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 - vz7: socket: don't restore ucred from kernel messages - vz7: netlink: dump/restore netlink options - vz7: netlink: restore queues and only then restore opts- vz7: cgroup -- Rename net_cls to net_cls,net_prio on the fly (#PSBM-60606) - vz7: tty -- Don't fail if @mnt_id is not present in images (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper- vz7: criu: add more information about control messages (#PSBM-60643) - docs: criu -- Explain pre-resume stage - action-scripts: Add "pre-resume" stage (#PSBM-58742) - Revert "vz7: Add ACT_POST_SIGRETURN" - vz7: Fix type conversion in dump_packet_cmsg- vz7: test: check ucred for netlink messages - vz7: netlink: dump and restore ucred-s for netlink messages (#PSBM-59339)- vz7: eventpoll: Skip inaccessible descriptors (#PSBM-60042)- vz7: pipes -- Restore pipe size via userns call (#PSBM-59829)- vz7: eventpoll: Fix dependency check (#PSBM-59550)- vz7: tty: Fix devpts mounts resolving (#PSBM-59223) - vz7: test: pty05 -- Extend test for unshared mount ns- vz7: files: Fix test and set endianess problem (#PSBM-58228) - vz7: tty: Optimize dependencies check - vz7: files: Merge collect_gen_fd() and collect_used_fd(), and call it unconditionally - vz7: files: Kill pid parameter of open_fdinfos() - vz7: eventpoll: Use generic list for eventpoll files - vz7: tty: Use generic list for tty files - vz7: files: Move ctty fixup to open_fd() - vz7: tty: Set dependencies between masters, slaves and ctty - vz7: files: Kill struct file_desc_ops::post_open - vz7: files: Make recv_fd_from_peer() non-block - vz7: files: Add new_fd parameter to file_desc_ops::open() - vz7: files: Set fds event after sending fd to peer - vz7: eventpoll: Make post_open stage may fail - vz7: files: BUG on reopening already opened fle - vz7: timerfd: Kill post_open stage - vz7: inet: Use task_st futex for notification instead of per-port - vz7: inet: Link sockets in port_type list - vz7: unix: Wait a peer using task_st futex - vz7: unix: Link connected to peer sockets to its list - vz7: files: Add fdinfo_list_entry::stage - vz7: files: Implement {set,clear,wait}_fds_event() - vz7: bits: Add test_and_set_bit() - vz7: pstree: Add task_st bit field - vz7: headers: Move lock.h into include/common/ - vz7: files: Merge states iteration into open_fdinfos() - vz7: files: Kill fd_open_state::receive_fd stage - vz7: files: Kill want_post_open_stage() - vz7: files: Kill fd parameter of transport_name_gen() - vz7: files: Kill file_desc_ops::want_transport() - vz7: files: Receive real fd numbers using recv_fd_from_peer() - vz7: files: Make sending fds to peers async - vz7: files: Allow to receive further fds - vz7: files: Add fle_init() for initialization new fdinfo_list_entry - vz7: files: Move derefferencing of TRANSPORT_FD_OFF to send_fd_to_peer() - vz7: files: Move closing fle's transport_fd to recv_fd_from_peer() - vz7: files: Send/receive fds with pointers on their struct fdinfo_list_entry in receiver- pcs7: mount: fix mounting non-root shared mounts- vz7: test: pty05 -- Add testing of multiple devpts instance - vz7: tty: Add support for multiple devpts instances (#PSBM-58616) - vz7: tty: Save mount ids for terminals into image - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper - vz7: tty: Save task current terminal if present - vz7: tty: Print rdev and dev pair in case of error - vz7: tty: Unify id printing- vz7: Makefile.version -- Adjust number for new series - Rebase to vanilla criu v2.10- vz7: Unlimit UBC when chekpointing (#PSBM-53593) - vz7: restore -- Enter destination veX once usernsd is up (#PSBM-56407) - vz7: Add ACT_POST_SIGRETURN - vz7: Make get_dumpee_veid been exported - vz7: zdtm: check a netlink socket with in-kernel state - vz7: netlink: allow to dump netlink sockets with in-progress operations- pcs7: tcp: bind tcp sockets after enabling the repair mode (#PSBM-57413) - Revert "pcs7: tcp: bind tcp sockets after enabling the repair mode"- pcs7: tcp: bind tcp sockets after enabling the repair mode (#PSBM-57413) - pcs7: scripts: Print error value in case of action script fail- Rebuild in 7.3 environment- pcs7: sk-inet: Fix lookup for raw sockets (#PSBM-55835)- zdtm: add a test to check a mount tree with overmounts (Andrei Vagin ) - mount: clone a mount namespace to open a detached mount (Andrei Vagin ) (#PSBM-57135) - mnt: try to split a mount tree to restore over-mounted mounts (Andrei Vagin ) - mnt: rename roots_mp into root_yard_mp and make it global (Andrei Vagin ) - mnt: add a sub-id to print_ns_root (Andrei Vagin ) - mnt: clean up (Andrei Vagin ) - mnt: add a function to check whether a mount overmounts something (Andrei Vagin )- pcs7: shmem: skip zero pages- pcs7: shmem: don't write zero pages into an image- pcs7: zdtm: check sequence numbers for tcp sockets - pcs7: build: install libnet-dev - pcs7: zdtm.py: pass a test PID into zdtm hooks - pcs7: zdtm: add test cases on TCP_SYN_SENT - pcs7: zdtm: add a test for unconnected tcp sockets - pcs7: zdmt: add more checks into socket-closed-tcp - pcs7: zdtm: check sockets in the TCP_CLOSING state - pcs7: zdtm: add test cases on TCP_CLOSE_WAIT and TCP_LAST_ACK states - pcs7: zdtm: add test cases on TCP_FIN_WAIT* states - pcs7: tcp: add support for synsent - pcs7: tcp: allow to dump intermediate closing states - pcs7: inet: dump source and destination addresses for closed sockets - pcs7: soccr: add support for syn-sent sockets - pcs7: soccr: add support for half-closed sockets - pcs7: soccr: move connect from criu to soccr - pcs7: soccr: add source and destination addresses to libsoccr_sk_data - pcs7: criu: check whether tcp_repair can be enabled for half-closed sockets - pcs7: soccr: add prefixes for log messages and print errno - pcs7: soccr: add '\n' to all loge/logd - pcs7: criu: enable soccr logging - pcs7: build: only generate soccr config.h if necessary - pcs7: soccr: Generate config.h dynamically - pcs7: soccr: rectify Alpine build - pcs7: make, soccr: let CRIU depend on libsoccr - pcs7: soccr: Add soccr.h's comments - pcs7: soccr: Handle connection state - pcs7: soccr/tcp: Restore queues using library - pcs7: soccr/tcp: Restore socket's info after binding it - pcs7: soccr/tcp: Restore socket's info before binding it - pcs7: soccr/tcp: Prepare connection info for restore - pcs7: soccr/tcp: Read queues contents using library - pcs7: soccr/tcp: Fill actual connection info using the library - pcs7: soccr/tcp: Introduce blob with connection info and getter for it - pcs7: soccr/tcp: Add _pause and _resume to library and use it - pcs7: soccr: Add logging - pcs7: soccr: Wire into builder - criu.spec: Add libnet-devel requirement for tcp-close sake- pcs7: seccomp -- Switch to prctl interface if syscall is not implemented (#PSBM-55593)- pcs7: restore: Fetch mmap_minimal_address runtime (#PSBM-56797)- pcs7: ghost files: don't check ghost size if it's an NFS path (#PSBM-56159)- pcs7: criu: Fix open() retval analysing (#PSBM-56384)- pcs7: fs: Fix retval analysing erratum (#PSBM-56384)- pcs7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED- pcs7: Adjust version for 2.8 series - Rebase to vanilla CRIU-2.8 series- pcs7: test: Add simple socket-raw test - pcs7: sk-inet: Add initial support for raw sockets (#PSBM-51614)- pcs7: Don't use executable stacks in @syscall_ip (#PSBM-55989) - Revert "pcs7: criu: proc_parse -- Add guard page the same way as kernel detects them" - Revert "pcs7: parasite: Don't try to start executing syscall from guard page"- pcs7: parasite: Don't try to start executing syscall from guard page (#PSBM-55989) - pcs7: criu: proc_parse -- Add guard page the same way as kernel detects them (#PSBM-55989)- pcs7: test: Add del_standalone_un_dentry test - pcs7: sk-unix: Restore deleted sockets together with removed dirs (#PSBM-55495) - pcs7: util: Add rmdirp helper - pcs7: test: rmdir_open -- Delete two levels of directories - pcs7: criu: files-reg -- Create a complete path to delete dentry - pcs7: util: Make mkdirpat more generic- pcs7: mount: don't create a temporary directory if /tmp exists - ps7: mount: fix mounting non-root shared mounts (#PSBM-55494) - pcs7: mount: handle error from restore_shared_options()- seize: Add additional diagnose messages (#PSBM-53929)- pcs7: mount: bind-mount autofs mounts via a file descriptors (#PSBM-53194)- pcs7: Fix seize_cgroup_tree error code collide- pcs7: freeze -- Wait for exiting tasks to complete (#PSBM-53282)- pcs7: scripts -- systemd-autofs-restart.sh: explicitly return result from get_fs_type (#PSBM-53239)- pcs7: spfs: move SPFS manager to corresponding container's dump directory- pcs7: mount: Correct s_dev conversion in mount_cr_time_mount() (#PSBM-52460)- pcs7: mount: Set opts.has_binfmt_misc regardless of mnt_ns level (#PSBM-52513)- pcs7: mount: Move adding cr-time binfmt_misc to collect_mnt_namespaces() (#PSBM-52513) - pcs7: mount: Do not fail on shared cr-time mounts mismatch (#PSBM-52513)- pcs7: restorer: add forgotten CLONE_FS flag for threads clone (#PSBM-47623)- pcs7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (#PSBM-52353) - pcs7: mnt -- Fix case where ve cgroup not found- pcs7: mnt -- Fetch VEID from cgroup for migration sake (#PSBM-52372)- pcs7: mount: Corrent sibling path when parent and child have the same mountpoint (#PSBM-52346)- pcs7: mount: Enter/exit VE while mounting CR-time binfmt_misc (#PSBM-52320)- mount: Prohibit second binfmt_misc superblock (#PSBM-47737) - mount: Restore binfmt_misc content in case of missing mount - mount: Forced mount unmounted binfmt_misc to do not lost its content - mount: Autodetect binfmt_misc - mount: Create binfmt_misc image w/o device suffix - mount: Move binfmt_misc entry restore code to subfunction - mount: Collect new type binfmt_misc.img image entries - image: Rename binfmt_misc image format as "old" - pcs7: shmem -- Inspect pages before the dump (#PSBM-52138)- pcs7: systemd-autofs-restart.sh: fix error handling in case of system limitation (#PSBM-51299)- seize: collect_pstree -- Add missing error sign return (#PSBM-51428)- pcs7: Adjust version for v2.5.x.x series - pcs7: conflict resolve - pcs7: scritps: systemd-autofs-restart.sh -- Do not treat absence on bindmount as error (#PSBM-50684) - pcs7: cg: Don't dump devices.list (#PSBM-50551) - unix: don't drop the path on unix sockets if they don't exist (Dmitry Safonov ) - pcs7: Increase the number of files limit (#PSBM-46761 #PSBM-50607) - pcs7: scripts: remove obsolete scripts - pcs7: cr-restore: use spfs helpers to control spfs manager - pcs7: spfs: add new helpers to replces bash scripts calls - pcs7: files-reg: move ghost_apply_metadata out of create_ghost_dentry - pcs7: Lift up local version - pcs7: Dump only known controllers (#PSBM-46382) - pcs7: log: Print version into the log (#PSBM-50239) - pcs7: mount: create a temporary mount to restore shared and master groups (#PSBM-47508) - pcs7: files-reg: fix silly-renamed files migration - pcs7: files-reg: improve spfs_file helper - pcs7: mount: sysfs -- Use slave mounting for the root (#PSBM-50010) - pcs7: util-vdso: correct vdso symbol's length - pcs7: Makefile: install spfs-release-replace.sh script (#PSBM-49726) - pcs7: files: Allow to dump ploopX files opened (#PSBM-49723) - pcs7: spfs: remove obsolete code - pcs7: files-reg: migrate "spfs" files as ghost-ones - pcs7: files-reg: conditionally dump content in dump_ghost_file - pcs7: util: mkdirname helper introduced - pcs7: files-reg: split create_ghost - pcs7: files_reg: remove unused "struct ghost_file" from mkreg_ghost prototype - pcs7: seize: Wait the freezer to complete before processing tags (#PSBM-49439) - pcs7: dump: Move task_comm_info helpers into seize.c - pcs7: spfs: do not tolerate file existence on creation - pcs7: dump: Show task comm early - pcs7: spfs: add device files creation support (#PSBM-48985) - pcs7: spfs: fix freeze cgroup path discovery - pcs7: cgroup: new_cg_root_get helper introduced - pcs7: criu: remove NFS unlinked files restriction - pcs7: files-reg: migrate spfs unlinked file as "link remap" objects - pcs7: files-reg: migrate spfs file as "link remap" objects - pcs7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file - pcs7: spfs: explicitly pass size and mode to spfs_create_file - pcs7: link_remap: do not create excessive links for a single file - pcs7: proc_parse: fix vma file open mode recognition (#PSBM-49199) - pcs7: log: files-ext -- Show exactly which file can't be dumped - pcs7: criu: util -- Add __read_fd_link helper - pcs7: mount: forbid dumping overmounted NFS (#PSBM-48620) - pcs7: zdtm: add a new test to check netlink sockets with queued data - pcs7: netlink: restore data in a received queue for netlink sockets (#PSBM-28386) - pcs7: sk-queue: add an ability to dump addresses for messages - pcs7: check: check whether NETLINK_REPAIR is supported or not - pcs7: netlink: request flags for netlink sockets - pcs7: files-reg: forbid to dump unlinked NFS files - pcs7: proc_parse: forbid dumping NFS remote locks - pcs7: files-reg: remove "unreachable" protobuf field as redundant - pcs7: files-reg: create spfs file in case of parent mount is SPFS - pcs7: files-reg: do not create spfs file in case of external resource - pcs7: spfs: remove "ns_list" option from "replace" command as obsolete - pcs7: namespace: mark mount namespaces as populated after the forking stage (#PSBM-48222) - pcs7: arch, x86 -- Add support for vz7 specific cpuid masking (#PSBM-47748 #PSBM-49423) - pcs7: scripts: remove bogus command substitution in nfs-ports-allow.sh (#PSBM-44207) - pcs7: scripts: restart all systemd automount services (#PSBM-46672) - pcs7: sk-unix: Fix path resolving for sockets with abs symlinks in paths - pcs7: util: Add cr_set_root/cr_restore_root helpers - pcs7: spfs: do not treat existent file as error in create_reg_file - pcs7: seize: Take --timeout option into account when freezing processes (#PSBM-47539 #PSBM-47538) - pcs7: scripts: spfs-release-replace.sh introduced - pcs7: criu: spfs -- Fixup various nits for NFS sake - pcs7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh - pcs7: mounts: mount spfs instead of NFSv3 and NFSv4 (#PSBM-26967) - pcs7: mount: add support for NFSv4 - pcs7: protobuf/mnt.proto: NFSv4 type added - pcs7: mount: add support for NFS - pcs7: protobuf/mnt.proto: NFS type added - pcs7: mount: add support for SUNRPC Pipefs - pcs7: protobuf/mnt.proto: RPC Pipefs type added - pcs7: scripts: allow-nfs-ports.sh added - pcs7: action-scripts: ACT_POST_NET_LOCK stage added - pcs7: scripts: spfs-change-mode.sh added - pcs7: action scripts: set spfs environment in run_scripts - pcs7: regular files: create temporary spfs file if marked as unreachable - pcs7: spfs: delayed mounts facility introduced - pcs7: cr-restore: declare SPFS_MNGR_SK service fd - pcs7: regular files: protobuf "unreachable" field introduced - pcs7: filemap: collect mapped file fs type - pcs7: reg_file_entry: add "mode" variable - pcs7: aio: Don't fail if kernel does not support aio wait (#PSBM-42488) - pcs7: Wait aio pending requests (#PSBM-42488) - pcs7: criu: tty -- Restore tty params synchronously (#PSBM-46382) - pcs7: Initial sync with vanilla v2.4 - log: Print version into the log (#PSBM-50239) - files-reg: fix silly-renamed files migration - files-reg: improve spfs_file helper - mounts: export is_root_mount helper - Revert "sk-unix: forbid to dump NFS unix sockets" (#PSBM-47017) - mount: sysfs -- Use slave mounting for the root (#PSBM-50010) - util-vdso: correct vdso symbol's length - Makefile: install spfs-release-replace.sh script (#PSBM-49726) - files: Allow to dump ploopX files opened (#PSBM-49723) - version: Adjust numbering - Revert "files_reg: carry rdev with regular files" - seize: Wait the freezer to complete before processing tags (#PSBM-49439) - spfs: remove obsolete code - files-reg: migrate "spfs" files as ghost-ones - files-reg: conditionally dump content in dump_ghost_file - util: mkdirname helper introduced - files-reg: split create_ghost - files_reg: remove unused "struct ghost_file" from mkreg_ghost prototype - dump: Move task_comm_info helpers into seize.c - pcs7: arch, x86 -- Fix typo in cpuid masking code (#PSBM-49423) - spfs: do not tolerate file existence on creation - dump: Show task comm early - spfs: add device files creation support (#PSBM-48985) - files_reg: carry rdev with regular files - spfs: fix freeze cgroup path discovery - cgroup: new_cg_root_get helper introduced - criu: remove NFS unlinked files restriction - files-reg: migrate spfs unlinked file as "link remap" objects - files-reg: migrate spfs file as "link remap" objects - spfs: pass mount ID instead of namespace descriptor to spfs_create_file - spfs: explicitly pass size and mode to spfs_create_file - link_remap: do not create excessive links for a single file - cr-dump: discover fs type in fill_fd_params_special - proc_parse: fix vma file open mode recognition (#PSBM-49199) - tty: Don't forget to add eol when inverting slave pts paths (#PSBM-49008) - tty: Fix typos in vt driver choosing (#PSBM-48614) - mount: don't do MS_REC|MS_PRIVATE for host mounts (#PSBM-46298) - log: files-ext -- Show exactly which file can't be dumped - criu: util -- Add __read_fd_link helper - mount: forbid dumping overmounted NFS (#PSBM-48620) - zdtm: add a new test to check netlink sockets with queued data - netlink: restore data in a received queue for netlink sockets (#PSBM-28386) - netlink: request flags for netlink sockets - sk-queue: add an ability to dump addresses for messages - check: check whether NETLINK_REPAIR is supported or not - unix: Do not autobind unnamed unix sockets (#PSBM-48446) - pcs7: images: Sync format with vanilla criu (#PSBM-48283) - sk-unix: forbid to dump NFS unix sockets - files-reg: forbid to dump unlinked NFS files - proc_parse: forbid dumping NFS remote locks - files-reg: remove "unreachable" protobuf field as redundant - files-reg: create spfs file in case of parent mount is SPFS - files-reg: do not create spfs file in case of external resource - spfs: remove "ns_list" option from "replace" command as obsolete - rpc: Implement @timeout interface (#PSBM-48256) - namespace: mark mount namespaces as populated after the forking stage (#PSBM-48222) - rpc: Add interface --freeze-cgroup option (#PSBM-44613) - pcs7: arch, x86 -- Add support for vz7 specific cpuid masking (#PSBM-47748) - dump: Allocate root_item before run pre-dump scripts (#PSBM-47737) - scripts: remove bogus command substitution in nfs-ports-allow.sh (#PSBM-44207) - net/sysctl: fix ipv4 forwarding (#PSBM-47355) - scripts: terminate systemd-autofs-restart.sh if saved mountpoint is missing (#PSBM-44207) - scripts: return non zero if save_mountpoint() fails (#PSBM-44207) - scripts: remove bogus command substitution in systemd-autofs-restart.sh (#PSBM-44207) - scripts: detect EOF on read in a usual way in systemd-autofs-restart.sh (#PSBM-44207) - mount: don't add a separate entry for each enabled file systems - scripts: restart all systemd automount services (#PSBM-46672) - sk-unix: Fix path resolving for sockets with abs symlinks in paths - util: Add cr_set_root/cr_restore_root helpers - zdtm/ptrace_sig: don't print from signal handlers (#PSBM-47772) - test: file_locks01 -- Test for dev change if only env is set (#PSBM-47714) - test: fanotify00 -- Test for device change if only env set - test: static, fanotify00 -- Don't compare @s_dev in test (#PSBM-47667) - spfs: do not treat existent file as error in create_reg_file - seize: Take --timeout option into account when freezing processes (#PSBM-47539 #PSBM-47538) - mount: create a temporary mount to restore shared and master groups (#PSBM-47508) - build: Don't forget to relink arch builtins on change - scripts: spfs-release-replace.sh introduced - Revert "scripts: spfs-release-replace.sh introduced" - scripts: spfs-release-replace.sh introduced - scripts: call readlink in CT context in systemd-autofs-restart.sh - scripts: single style for command substitution in systemd-autofs-restart.sh (#PSBM-44207) - tty: Don't forget to unblock tty peers - tty: Save @flags unconditionaly for consistency - zdtm: check in-flight data in ttys - tty: Write unread pty buffers on post dump stage (#PSBM-41399) - criu: don't interrupt do_new_mount() after appling mount options (#PSBM-47489) - aio: Consider AIO pages as "should be dumped" (#PSBM-47489) - test/sockets: add test for shut down stream unix sockets (#PSBM-47023) - sk-unix: ignore shutdown mismatch in unix sockets - scripts: fix strings comparison in systemd-autofs-restart.sh - net/sysctl: zero-init stable_secret strings (#PSBM-30942) - net/sysctl: remove excess type conversions for sysctl_entry.type - net/sysctl: silence read error in case of CTL_FLAGS_READ_EIO_SKIP - zdtm/net/ipv6: add test for string stable_secret - sysctl: fix allocation for array of pointers - zdtm/net/ipv6: add test for confs - zdtm/net/ipv6: add devconfs6 and rand_range6 - zdtm/net/ipv6: allow inacurate match for mldvX_unsolicited_report_interval - zdtm/net/ipv4: split save_and_set and check_and_restore - zdtm/net/ipv4: replace rand limits with rand ranges - zdtm/net/ipv4: make save_and_set and check_and_restore reusable - restore/net/ipv6: net device and def/all configuration - dump/net/ipv6: net device and def/all configuration - net/ipv6: add devconfs6 array to store config option's names - net/ipv6/protobuf: add device config options for ipv6 - net/ipv4: add net_conf_op to reuse for ipv6 - protobuf: add SysctlEntry for ipv4/ipv6 sysctl confs or some others - sysctl: add CTL_FLAGS_HAS to mark successful sysctl_op request - zdtm/net/ipv4: rename devconfs4 and rand_limit4 and dir4 - net/ipv4: suffix devconfs with "4" - net/ipv4: add new sysctls - pcs7: criu: spfs -- Fixup various nits for NFS sake - pcs7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh - pcs7: mounts: mount spfs instead of NFSv3 and NFSv4 (#PSBM-26967) - pcs7: mount: add support for NFSv4 - pcs7: protobuf/mnt.proto: NFSv4 type added - pcs7: mount: add support for NFS - pcs7: protobuf/mnt.proto: NFS type added - pcs7: mount: add support for SUNRPC Pipefs - pcs7: protobuf/mnt.proto: RPC Pipefs type added - pcs7: scripts: allow-nfs-ports.sh added - pcs7: action-scripts: ACT_POST_NET_LOCK stage added - pcs7: scripts: spfs-change-mode.sh added - pcs7: action scripts: set spfs environment in run_scripts - pcs7: regular files: create temporary spfs file if marked as unreachable - pcs7: spfs: delayed mounts facility introduced - pcs7: cr-restore: declare SPFS_MNGR_SK service fd - pcs7: regular files: protobuf "unreachable" field introduced - pcs7: filemap: collect mapped file fs type - pcs7: reg_file_entry: add "mode" variable - pcs7: cgroup: Fix early update of @dir_name in rewrite_cgsets (#PSBM-46987) - plugins: Initialize plugins control by default - pcs7: mount: add support for external block devices (#PSBM-39381) - pcs7: aio: Fix mmap retval analysing - pcs7: aio: Don't fail if kernel does not support aio wait (#PSBM-42488) - pcs7: Wait aio pending requests (#PSBM-42488) - mount: create a clean mount only if a sub directory is bind-mounted (#PSBM-46908) - mount: dump a file system only if a mount point isn't overmounted (#PSBM-46908) - mount: don't overmount a mount if it should be bind-mounted somewhere (#PSBM-46908) - Revert "mount: dump a file system only if a mount point isn't overmounted" - Revert "mount: don't overmount a mount if it should be bind-mounted somewhere" - scripts: fix mountinfo parsing in systemd-autofs-restart.sh (#PSBM-46889) - mount: don't overmount a mount if it should be bind-mounted somewhere (#PSBM-46732 #PSBM-46662) - mount: remove an extra condition from mounts_equal() - mount: handle a case when parent and child mounts in the same directory - mount: dump a file system only if a mount point isn't overmounted - Revert "mount: don't overmount a mount if it should be bind-mounted somewhere" (#PSBM-46732) - autofs: support of "hidden" catatonic mounts (#PSBM-46572) - autofs: rework pipe search logic a bit - build: Add ability to generate gprof output - pcs7: scripts -- Make sure -1 pid is not passed (#PSBM-46572) - pcs7: Increase the number of files limit (#PSBM-46761) - scripts: do not use stat to discover fs type in systemd-autofs-restart.sh (#PSBM-46756) - scripts: save and restore target mount for autofs service (#PSBM-46672) - mount: don't overmount a mount if it should be bind-mounted somewhere (#PSBM-46662) - pcs7: Dump only known controllers (#PSBM-46382) - Revert "cg: Add ability to dump predefined controllers only" - Revert "pcs7: Increase the number of files limit" - criu: dump filemap as soon as possible (#PSBM-46355) - autofs: collect new pipe fd as used (#PSBM-46601) - autofs: do not create dentries for indirect mount on bind-mounts (#PSBM-46572) - pcs7: Increase the number of files limit (#PSBM-46355) - build: install -- Don't forget to init DESTDIR - scripts: fix typo in binary path in systemd-autofs-restart.sh - restore: Wait for userns being prepared before moving into cgroups (v3) - Revert "restore: Wait for userns being prepared before moving into cgroups (v2)" - cg: Add ability to dump predefined controllers only (#PSBM-46382) - scripts: join pid namespace in systemd-autofs-restart.sh (#PSBM-46470) - files: try to change fsuid only if linkat() failed (#PSBM-46201) - criu: tty -- Restore tty params synchronously (#PSBM-46382) - restore: Wait for userns being prepared before moving into cgroups (v2) (#PSBM-46360) - Revert "restore: Wait for userns being prepared before moving into cgroups" - autofs: use temporary value for virtual pgrp on dump - restore: Wait for userns being prepared before moving into cgroups (#PSBM-46360) - files: Correctly handle tasks with no open file descriptors (#PSBM-46269) - autofs: install -- Fix libexec prefix (#PSBM-46249) - autofs: install -- Ship scripts/systemd-autofs-restart.sh (#PSBM-46249) - pcs7: Update Makefile.local - criu: action-scripts -- Don't access @root_item_pid if not present - zdtm: check the mem_dirty_track if --pre or --snap is set (Pavel Emelyanov ) - ppc64le: fix build with UFFD (Pavel Emelyanov ) - Fix compilation of action-scripts.c (Pavel Emelyanov ) - kdat: Remove tcp_max_rshare (Pavel Emelyanov ) - tcp: Send as much as possible (Pavel Emelyanov ) - join-ns: Fix join-ns zdtm test (Pavel Emelyanov ) - sk: handle erorors of lseek (Pavel Emelyanov ) - util: don't leak a socket (Pavel Emelyanov ) - namespaces: don't leak memory on error paths (Pavel Emelyanov ) - cr-restore: set NS_PID environment variable before "post-resume" hook (Pavel Emelyanov ) - scripts: systemd-autofs-restart.sh added (Pavel Emelyanov ) - build: Add export of sublevels and extra (Pavel Emelyanov ) - build: compel -- Drop double targeting (Pavel Emelyanov ) - cr-restore: "post-resume" hook introduced (Pavel Emelyanov ) - criu: opts -- Shuffle init_opts order (Pavel Emelyanov ) - compel: Drop config.h from deps (Pavel Emelyanov ) - ns: Options join-ns and unshare are conflicting (Pavel Emelyanov ) - compel: Initial commit for standalone tool (Pavel Emelyanov ) - compel: piegen -- Introduce actions (Pavel Emelyanov ) - compel: piegen -- Add @arch option (Pavel Emelyanov ) - compel: piegen -- Add @uapi-dir option (Pavel Emelyanov ) - join-ns: add join-ns zdtm test (Pavel Emelyanov ) - join-ns: perform join_namespace according to join-ns opts (Pavel Emelyanov ) - join-ns: add join-ns option to criu CLI and RPC (Pavel Emelyanov ) - uffd: add handling of zero pages (Pavel Emelyanov ) - uffd: introduce uffd_handle_page (Pavel Emelyanov ) - uffd: increment uffd_copied_pages only in one place (Pavel Emelyanov ) - uffd.c: move the code out of the 'main' function (Pavel Emelyanov ) - uffd.c: make some variable static global (Pavel Emelyanov ) - uffd.c: move code into subfunctions (Pavel Emelyanov ) - uffd.c: remove unused variable vma_size (Pavel Emelyanov ) - autofs: free leaked opts in autofs_mount (Pavel Emelyanov ) - autofs: free leaked info in autofs_mount on error path (Pavel Emelyanov ) - autofs: free leaked AutofsEntry in autofs_dump_entry (Pavel Emelyanov ) - autofs: do not close NULL image (Pavel Emelyanov ) - uffd: remove handling of VDSO pages (Pavel Emelyanov ) - uffd: do not treat VDSO pages as lazy (Pavel Emelyanov ) - uffd: Fix pr_debug format for vma start (Pavel Emelyanov ) - autofs: fix device id modifier on error path in autofs_mnt_open (Pavel Emelyanov ) - autofs: fix device id printf modifier on error path in autofs_mnt_open (Pavel Emelyanov ) - autofs: do not treat old kernel as error in autofs_parse() (Pavel Emelyanov ) - autofs: include limit.h before auto_fs.h (Pavel Emelyanov ) - autofs: fix build on Fedora 22 (Pavel Emelyanov ) - uffd.c: do not call unneeded functions (Pavel Emelyanov ) - cr-restore: move add_ns_shared_cb declaration to include/namespaces.h (Pavel Emelyanov ) - Fix userfaultfd code with newer compilers (Pavel Emelyanov ) - check: "autofs" feature added (Pavel Emelyanov ) - zdtm.py: create "dev/autofs" root contruction (Pavel Emelyanov ) - zdtm: add autofs test (Pavel Emelyanov ) - mount: create target directory for AutoFS indirect mounts. (Pavel Emelyanov ) - autofs: restore stage introduced (Pavel Emelyanov ) - autofs: declare ioctl helpers and constants (Pavel Emelyanov ) - pipes: export collect_one_pipe_ops() helper (Pavel Emelyanov ) - files: new dup_fdinfo() and dup_fle() helpers introduced (Pavel Emelyanov ) - files: new "used" files list introduced (Pavel Emelyanov ) - autofs: dump fsinfo stage introduced (Pavel Emelyanov ) - autofs: parse fsinfo stage introduced (Pavel Emelyanov ) - protobuf: autofs entry introduced (Pavel Emelyanov ) - devices: add support for /dev/autofs (Pavel Emelyanov ) - protobuf/mnt.proto: AutoFS type added (Pavel Emelyanov ) - unshare: Check private remount error code (Pavel Emelyanov ) - unshare: Define UNSHARE_MOUNT_PROC constant (Pavel Emelyanov ) - pstree: try to find a free pid between busy pids (v2) (Pavel Emelyanov ) - pstree: use rbtree to find a specified pid (v3) (Pavel Emelyanov ) - pstree: prepare to store all pid-s in rb-tree (v3) (Pavel Emelyanov ) - pstree: split alloc_pstree_helper (Pavel Emelyanov ) - pstree: move state from pstree_item to pid (Pavel Emelyanov ) - Try to include userfaultfd with criu (part 2) (Pavel Emelyanov ) - Try to include userfaultfd with criu (part 1) (Pavel Emelyanov ) - Remove static from prepare_task_entries function (Pavel Emelyanov ) - Make skip_pages function available criu-wide (Pavel Emelyanov ) - unshare: Support pidns (Pavel Emelyanov ) - unshare: Mount new proc (Pavel Emelyanov ) - unshare: Support mntns (Pavel Emelyanov ) - unshare: Preparations and CLI option (Pavel Emelyanov ) - pcs7: Extend version output via local build (#PSBM-45009) - build: criu -- Don't forget to cleanup arch directory - cg: Add rollback in get_cg_set (#PSBM-45553) - cg: Add rollback for add_cgroup (#PSBM-45553) - cg: Fix use-after-free in put_ctls (#PSBM-45553) - pie: open_detach_mount -- Use pr_perror for regular build - util: return aligned pointers from shmalloc() - Makefile: drop 'rebuild' from help message - nmk: build.mk -- Add @libso-y helper - nmk: build.mk -- Add @hostprogs-y mode - nmk: msg.mk -- Add host- messages - nmk: build.mk -- Shrink gen-cc-rules - nmk: build.mk -- Drop any-match rule - nmk: build.mk -- Fix deps for target mode - nmk: build.mk -- Squash gen-rule-x into gen-cc-rules - nmk: Drop rules.mk - nmk: rules.mk -- Fix AFLAGS typo - tests: remap_dead_pid[_root] -- Run in namespace only - log: add gnu-styled output to stdout - build: images -- Add missing cleanups - namespaces: zero struct ns_id when allocating - criu: use strsignal to describe kill reason - nmk: build.mk -- Fix ar rule for external libs - nmk: build.mk -- Make process depend on Makefile itself - nmk: build.mk -- On cleanup use cleanup-y only - nmk: utils.mk -- Add cleanify helper - nmk: utils.mk -- Drop redundant spaces - nmk: build.mk -- Fix typo in gen-ar-target-rule - nmk: rules.mk -- Add per-obj flags - nmk: build.mk -- Drop unused objlist target - nmk: rules.mk -- Drop @CFLAGS_ and @ASFLAGS_ but add ability to bring them via param - build: add mrproper target - build/nmk: add mrproper-y - build: Drop @images - nmk: scritps/macro.mk -- Enhance gen-built-in - x86/restorer: drop unused struct pt_regs - types: Remove setns override with sys_setns - rst-malloc: adjust free_bytes in rst_mem_align_cpos - netfilter: add -n to iptables and ip6tables calls - build: docs -- Use autogenerated footer - pstree: try to find a free pid between busy pids (v2) - pstree: use rbtree to find a specified pid (v3) - pstree: prepare to store all pid-s in rb-tree (v3) - pstree: split alloc_pstree_helper - pstree: move state from pstree_item to pid - criu: seize -- Don't left dangling @processes_to_wait_pids pointer - libnetlink: back port a fix for nlattr_parse() - netlink: Use nlattr instead of rtattr - criu: pstree_switch_state -- Fix nil deref on error path - irmap: use kdev everywere - dump: check for conflicts with the dead processes - irmap: don't try to dereference a null pointer - mounts: handle device numbers in different formats properly - criu: Use __NR_memfd_create for testing memfd presence - build: Conditionally defined SYS_* constants - build: criu -- Don't link with syscalls library - mount: don't use a shared mount to get a clean mount - mount: master_id should be 0 for new mounts - mount: restore a shared group for propagated mounts - build: clean up various other bits - build: Add verbose message on packages needed for CRIU building - build: Unify phony forms usage - pre-dump: don't waste time in error cases - dump: pre-dump should never kill processes - make: Improve tar generation - pcs7: Update local version - dump: don't call rollback actions from a signal handler (#PSBM-44371) - mounts: Skip already bound siblings in propagate_siblings() - PCS7: cgroup: Always restore predefined VE props (#PSBM-41406) - files-reg: Fix rm_parent_dirs() counter - files-reg: Delete ghost file numeric index - files-reg: Revert: Make try_clean_ghost() use struct ghost_file ptr - zdtm: Disable unlink_regular00 by default - zdtm: Add unlink_regular00 test - files-reg: Recreate deleted parent directories during restore of ghost file - files-reg: Create ghost files in first existing parent directory - files-reg: Move applying ghost file metadata from create_ghost() to separate function - files-reg: Make try_clean_ghost() use struct ghost_file ptr - files-reg: Refactor create_ghost() - seize: detach from external processes before killing dumped processes (v2) (#PSBM-43795) - mount: separate private remount conditions for external and non-external (#PSBM-42829) - plugin: Add PRE_DUMP stage into plugins - dump: save master_id for the root mount (#PSBM-43260) - crtools: describe the inherit-fd option - parasite: Don't left memfd opened inside dumpee (#PSBM-43199) - scripts: post-setup-namespaces - seize: remove extra \n from the error message (Cyrill Gorcunov ) - seize: don't detach from a task if a freezer cgroup is set (Cyrill Gorcunov ) - seize: detach from all processes before waiting the root task (Cyrill Gorcunov ) (#PSBM-43089) - make: Add Makefile.version (Cyrill Gorcunov )- pcs7: scritps: systemd-autofs-restart.sh -- Do not treat absence on bindmount as error (#PSBM-50684)- pcs7: cg: Don't dump devices.list (#PSBM-50551)- unix: don't drop the path on unix sockets if they don't exist- pcs7: Increase the number of files limit (#PSBM-50607) - pcs7: scripts: remove obsolete scripts - pcs7: cr-restore: use spfs helpers to control spfs manager - pcs7: spfs: add new helpers to replces bash scripts calls- pcs7: files-reg: move ghost_apply_metadata out of create_ghost_dentry- pcs7: Lift up local version - pcs7: Dump only known controllers (#PSBM-46382) - pcs7: log: Print version into the log (#PSBM-50239) - pcs7: mount: create a temporary mount to restore shared and master groups (#PSBM-47508) - pcs7: files-reg: fix silly-renamed files migration - pcs7: files-reg: improve spfs_file helper - pcs7: mount: sysfs -- Use slave mounting for the root (#PSBM-50010) - pcs7: util-vdso: correct vdso symbol's length - pcs7: Makefile: install spfs-release-replace.sh script (#PSBM-49726) - pcs7: files: Allow to dump ploopX files opened (#PSBM-49723) - pcs7: spfs: remove obsolete code - pcs7: files-reg: migrate "spfs" files as ghost-ones - pcs7: files-reg: conditionally dump content in dump_ghost_file - pcs7: util: mkdirname helper introduced - pcs7: files-reg: split create_ghost - pcs7: files_reg: remove unused "struct ghost_file" from mkreg_ghost prototype - pcs7: seize: Wait the freezer to complete before processing tags (#PSBM-49439) - pcs7: dump: Move task_comm_info helpers into seize.c - pcs7: spfs: do not tolerate file existence on creation - pcs7: dump: Show task comm early - pcs7: spfs: add device files creation support (#PSBM-48985) - pcs7: spfs: fix freeze cgroup path discovery - pcs7: cgroup: new_cg_root_get helper introduced - pcs7: criu: remove NFS unlinked files restriction - pcs7: files-reg: migrate spfs unlinked file as "link remap" objects - pcs7: files-reg: migrate spfs file as "link remap" objects - pcs7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file - pcs7: spfs: explicitly pass size and mode to spfs_create_file - pcs7: link_remap: do not create excessive links for a single file - pcs7: proc_parse: fix vma file open mode recognition (#PSBM-49199) - pcs7: log: files-ext -- Show exactly which file can't be dumped - pcs7: criu: util -- Add __read_fd_link helper - pcs7: mount: forbid dumping overmounted NFS (#PSBM-48620) - pcs7: zdtm: add a new test to check netlink sockets with queued data - pcs7: netlink: restore data in a received queue for netlink sockets (#PSBM-28386) - pcs7: sk-queue: add an ability to dump addresses for messages - pcs7: check: check whether NETLINK_REPAIR is supported or not - pcs7: netlink: request flags for netlink sockets - pcs7: files-reg: forbid to dump unlinked NFS files - pcs7: proc_parse: forbid dumping NFS remote locks - pcs7: files-reg: remove "unreachable" protobuf field as redundant - pcs7: files-reg: create spfs file in case of parent mount is SPFS - pcs7: files-reg: do not create spfs file in case of external resource - pcs7: spfs: remove "ns_list" option from "replace" command as obsolete - pcs7: namespace: mark mount namespaces as populated after the forking stage (#PSBM-48222) - pcs7: arch, x86 -- Add support for vz7 specific cpuid masking (#PSBM-47748 #PSBM-49423) - pcs7: scripts: remove bogus command substitution in nfs-ports-allow.sh (#PSBM-44207) - pcs7: scripts: restart all systemd automount services (#PSBM-46672) - pcs7: sk-unix: Fix path resolving for sockets with abs symlinks in paths - pcs7: util: Add cr_set_root/cr_restore_root helpers - pcs7: spfs: do not treat existent file as error in create_reg_file - pcs7: seize: Take --timeout option into account when freezing processes (#PSBM-47539 #PSBM-47538) - pcs7: scripts: spfs-release-replace.sh introduced - pcs7: criu: spfs -- Fixup various nits for NFS sake - pcs7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh - pcs7: mounts: mount spfs instead of NFSv3 and NFSv4 (#PSBM-26967) - pcs7: mount: add support for NFSv4 - pcs7: protobuf/mnt.proto: NFSv4 type added - pcs7: mount: add support for NFS - pcs7: protobuf/mnt.proto: NFS type added - pcs7: mount: add support for SUNRPC Pipefs - pcs7: protobuf/mnt.proto: RPC Pipefs type added - pcs7: scripts: allow-nfs-ports.sh added - pcs7: action-scripts: ACT_POST_NET_LOCK stage added - pcs7: scripts: spfs-change-mode.sh added - pcs7: action scripts: set spfs environment in run_scripts - pcs7: regular files: create temporary spfs file if marked as unreachable - pcs7: spfs: delayed mounts facility introduced - pcs7: cr-restore: declare SPFS_MNGR_SK service fd - pcs7: regular files: protobuf "unreachable" field introduced - pcs7: filemap: collect mapped file fs type - pcs7: reg_file_entry: add "mode" variable - pcs7: aio: Don't fail if kernel does not support aio wait (#PSBM-42488) - pcs7: Wait aio pending requests (#PSBM-42488) - pcs7: criu: tty -- Restore tty params synchronously (#PSBM-46382) - pcs7: Initial sync with vanilla v2.4- log: Print version into the log (#PSBM-50239) - files-reg: fix silly-renamed files migration - files-reg: improve spfs_file helper - mounts: export is_root_mount helper- Revert "sk-unix: forbid to dump NFS unix sockets" (#PSBM-47017)- mount: sysfs -- Use slave mounting for the root (#PSBM-50010) - util-vdso: correct vdso symbol's length- Makefile: install spfs-release-replace.sh script (#PSBM-49726)- files: Allow to dump ploopX files opened (#PSBM-49723) - version: Adjust numbering - Revert "files_reg: carry rdev with regular files"- seize: Wait the freezer to complete before processing tags (#PSBM-49439) - spfs: remove obsolete code - files-reg: migrate "spfs" files as ghost-ones - files-reg: conditionally dump content in dump_ghost_file - util: mkdirname helper introduced - files-reg: split create_ghost - files_reg: remove unused "struct ghost_file" from mkreg_ghost prototype - dump: Move task_comm_info helpers into seize.c- pcs7: arch, x86 -- Fix typo in cpuid masking code (#PSBM-49423) - spfs: do not tolerate file existence on creation- dump: Show task comm early - spfs: add device files creation support (#PSBM-48985) - files_reg: carry rdev with regular files- spfs: fix freeze cgroup path discovery - cgroup: new_cg_root_get helper introduced - criu: remove NFS unlinked files restriction - files-reg: migrate spfs unlinked file as "link remap" objects - files-reg: migrate spfs file as "link remap" objects - spfs: pass mount ID instead of namespace descriptor to spfs_create_file - spfs: explicitly pass size and mode to spfs_create_file - link_remap: do not create excessive links for a single file - cr-dump: discover fs type in fill_fd_params_special - proc_parse: fix vma file open mode recognition (#PSBM-49199) - Set hash for -u1 branch- tty: Don't forget to add eol when inverting slave pts paths (#PSBM-49008)- tty: Fix typos in vt driver choosing (#PSBM-48614)- mount: don't do MS_REC|MS_PRIVATE for host mounts (#PSBM-46298) - log: files-ext -- Show exactly which file can't be dumped - criu: util -- Add __read_fd_link helper- mount: forbid dumping overmounted NFS (#PSBM-48620)- zdtm: add a new test to check netlink sockets with queued data - netlink: restore data in a received queue for netlink sockets (#PSBM-28386) - netlink: request flags for netlink sockets - sk-queue: add an ability to dump addresses for messages - check: check whether NETLINK_REPAIR is supported or not - unix: Do not autobind unnamed unix sockets (#PSBM-48446) - pcs7: images: Sync format with vanilla criu (#PSBM-48283) - sk-unix: forbid to dump NFS unix sockets - files-reg: forbid to dump unlinked NFS files - proc_parse: forbid dumping NFS remote locks - files-reg: remove "unreachable" protobuf field as redundant - files-reg: create spfs file in case of parent mount is SPFS - files-reg: do not create spfs file in case of external resource- spfs: remove "ns_list" option from "replace" command as obsolete- rpc: Implement @timeout interface (#PSBM-48256)- namespace: mark mount namespaces as populated after the forking stage (#PSBM-48222)- rpc: Add interface --freeze-cgroup option (#PSBM-44613) - pcs7: arch, x86 -- Add support for vz7 specific cpuid masking (#PSBM-47748) - dump: Allocate root_item before run pre-dump scripts (#PSBM-47737) - scripts: remove bogus command substitution in nfs-ports-allow.sh (#PSBM-44207)- net/sysctl: fix ipv4 forwarding (#PSBM-47355) - scripts: terminate systemd-autofs-restart.sh if saved mountpoint is missing (#PSBM-44207) - scripts: return non zero if save_mountpoint() fails (#PSBM-44207) - scripts: remove bogus command substitution in systemd-autofs-restart.sh (#PSBM-44207) - scripts: detect EOF on read in a usual way in systemd-autofs-restart.sh (#PSBM-44207)- mount: don't add a separate entry for each enabled file systems (#PSBM-47221)- scripts: restart all systemd automount services (#PSBM-46672)- sk-unix: Fix path resolving for sockets with abs symlinks in paths - util: Add cr_set_root/cr_restore_root helpers- zdtm/ptrace_sig: don't print from signal handlers (#PSBM-47772) - test: file_locks01 -- Test for dev change if only env is set (#PSBM-47714) - test: fanotify00 -- Test for device change if only env set - test: static, fanotify00 -- Don't compare @s_dev in test (#PSBM-47667)- spfs: do not treat existent file as error in create_reg_file - seize: Take --timeout option into account when freezing processes (#PSBM-47539 #PSBM-47538) - mount: create a temporary mount to restore shared and master groups (#PSBM-47508) - build: Don't forget to relink arch builtins on change - scripts: spfs-release-replace.sh introduced - Revert "scripts: spfs-release-replace.sh introduced" - scripts: spfs-release-replace.sh introduced - scripts: call readlink in CT context in systemd-autofs-restart.sh - scripts: single style for command substitution in systemd-autofs-restart.sh (#PSBM-44207) - tty: Don't forget to unblock tty peers - tty: Save @flags unconditionaly for consistency - zdtm: check in-flight data in ttys - tty: Write unread pty buffers on post dump stage (#PSBM-41399)- criu: don't interrupt do_new_mount() after appling mount options (#PSBM-47489)- aio: Consider AIO pages as "should be dumped" (#PSBM-47489) - test/sockets: add test for shut down stream unix sockets (#PSBM-47023) - sk-unix: ignore shutdown mismatch in unix sockets - scripts: fix strings comparison in systemd-autofs-restart.sh- net/sysctl: zero-init stable_secret strings (#PSBM-30942) - net/sysctl: remove excess type conversions for sysctl_entry.type - net/sysctl: silence read error in case of CTL_FLAGS_READ_EIO_SKIP - zdtm/net/ipv6: add test for string stable_secret - sysctl: fix allocation for array of pointers - zdtm/net/ipv6: add test for confs - zdtm/net/ipv6: add devconfs6 and rand_range6 - zdtm/net/ipv6: allow inacurate match for mldvX_unsolicited_report_interval - zdtm/net/ipv4: split save_and_set and check_and_restore - zdtm/net/ipv4: replace rand limits with rand ranges - zdtm/net/ipv4: make save_and_set and check_and_restore reusable - restore/net/ipv6: net device and def/all configuration - dump/net/ipv6: net device and def/all configuration - net/ipv6: add devconfs6 array to store config option's names - net/ipv6/protobuf: add device config options for ipv6 - net/ipv4: add net_conf_op to reuse for ipv6 - protobuf: add SysctlEntry for ipv4/ipv6 sysctl confs or some others - sysctl: add CTL_FLAGS_HAS to mark successful sysctl_op request - zdtm/net/ipv4: rename devconfs4 and rand_limit4 and dir4 - net/ipv4: suffix devconfs with "4" - net/ipv4: add new sysctls - pcs7: criu: spfs -- Fixup various nits for NFS sake- pcs7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh - pcs7: mounts: mount spfs instead of NFSv3 and NFSv4 (#PSBM-26967) - pcs7: mount: add support for NFSv4 - pcs7: protobuf/mnt.proto: NFSv4 type added - pcs7: mount: add support for NFS - pcs7: protobuf/mnt.proto: NFS type added - pcs7: mount: add support for SUNRPC Pipefs - pcs7: protobuf/mnt.proto: RPC Pipefs type added - pcs7: scripts: allow-nfs-ports.sh added - pcs7: action-scripts: ACT_POST_NET_LOCK stage added - pcs7: scripts: spfs-change-mode.sh added - pcs7: action scripts: set spfs environment in run_scripts - pcs7: regular files: create temporary spfs file if marked as unreachable - pcs7: spfs: delayed mounts facility introduced - pcs7: cr-restore: declare SPFS_MNGR_SK service fd - pcs7: regular files: protobuf "unreachable" field introduced - pcs7: filemap: collect mapped file fs type - pcs7: reg_file_entry: add "mode" variable - Add requirement for spfs package- pcs7: cgroup: Fix early update of @dir_name in rewrite_cgsets (#PSBM-46987) - plugins: Initialize plugins control by default- pcs7: mount: add support for external block devices (#PSBM-39381)- pcs7: aio: Fix mmap retval analysing- pcs7: aio: Don't fail if kernel does not support aio wait (#PSBM-42488) - pcs7: Wait aio pending requests (#PSBM-42488)- mount: create a clean mount only if a sub directory is bind-mounted (#PSBM-46908) - mount: dump a file system only if a mount point isn't overmounted (#PSBM-46908) - mount: don't overmount a mount if it should be bind-mounted somewhere (#PSBM-46908) - Revert "mount: dump a file system only if a mount point isn't overmounted" - Revert "mount: don't overmount a mount if it should be bind-mounted somewhere"- scripts: fix mountinfo parsing in systemd-autofs-restart.sh (#PSBM-46889)- mount: don't overmount a mount if it should be bind-mounted somewhere (#PSBM-46732 #PSBM-46662) - mount: remove an extra condition from mounts_equal() - mount: handle a case when parent and child mounts in the same directory - mount: dump a file system only if a mount point isn't overmounted - Revert "mount: don't overmount a mount if it should be bind-mounted somewhere" (#PSBM-46732) - autofs: support of "hidden" catatonic mounts (#PSBM-46572) - autofs: rework pipe search logic a bit - build: Add ability to generate gprof output- autofs: support of "hidden" catatonic mounts (#PSBM-46572) - autofs: rework pipe search logic a bit - build: Add ability to generate gprof output- pcs7: scripts -- Make sure -1 pid is not passed (#PSBM-46572)- pcs7: Increase the number of files limit (#PSBM-46761)- scripts: do not use stat to discover fs type in systemd-autofs-restart.sh (#PSBM-46756)- scripts: save and restore target mount for autofs service (#PSBM-46672)- mount: don't overmount a mount if it should be bind-mounted somewhere (#PSBM-46662)- pcs7: Dump only known controllers (#PSBM-46382) - Revert "cg: Add ability to dump predefined controllers only"- Revert "pcs7: Increase the number of files limit" - criu: dump filemap as soon as possible (#PSBM-46355)- autofs: collect new pipe fd as used (#PSBM-46601)- autofs: do not create dentries for indirect mount on bind-mounts (#PSBM-46572)- pcs7: Increase the number of files limit (#PSBM-46355) - build: install -- Don't forget to init DESTDIR - scripts: fix typo in binary path in systemd-autofs-restart.sh - restore: Wait for userns being prepared before moving into cgroups (v3) - Revert "restore: Wait for userns being prepared before moving into cgroups (v2)" - cg: Add ability to dump predefined controllers only (#PSBM-46382)- scripts: join pid namespace in systemd-autofs-restart.sh (#PSBM-46470) - files: try to change fsuid only if linkat() failed (#PSBM-46201) - criu: tty -- Restore tty params synchronously (#PSBM-46382)- restore: Wait for userns being prepared before moving into cgroups (v2) (#PSBM-46360) - Revert "restore: Wait for userns being prepared before moving into cgroups"- autofs: use temporary value for virtual pgrp on dump - restore: Wait for userns being prepared before moving into cgroups (#PSBM-46360)- files: Correctly handle tasks with no open file descriptors (#PSBM-46269)- autofs: install -- Fix libexec prefix (#PSBM-46249) - autofs: install -- Ship scripts/systemd-autofs-restart.sh (#PSBM-46249)- autofs: install -- Ship scripts/systemd-autofs-restart.sh (#PSBM-46249) - autofs: install -- Ship {_libexecdir}- pcs7: Update Makefile.local - criu: action-scripts -- Don't access @root_item_pid if not present - zdtm: check the mem_dirty_track if --pre or --snap is set (Pavel Emelyanov ) - ppc64le: fix build with UFFD (Pavel Emelyanov ) - Fix compilation of action-scripts.c (Pavel Emelyanov ) - kdat: Remove tcp_max_rshare (Pavel Emelyanov ) - tcp: Send as much as possible (Pavel Emelyanov ) - join-ns: Fix join-ns zdtm test (Pavel Emelyanov ) - sk: handle erorors of lseek (Pavel Emelyanov ) - util: don't leak a socket (Pavel Emelyanov ) - namespaces: don't leak memory on error paths (Pavel Emelyanov ) - cr-restore: set NS_PID environment variable before "post-resume" hook (Pavel Emelyanov ) - scripts: systemd-autofs-restart.sh added (Pavel Emelyanov ) - build: Add export of sublevels and extra (Pavel Emelyanov ) - build: compel -- Drop double targeting (Pavel Emelyanov ) - cr-restore: "post-resume" hook introduced (Pavel Emelyanov ) - criu: opts -- Shuffle init_opts order (Pavel Emelyanov ) - compel: Drop config.h from deps (Pavel Emelyanov ) - ns: Options join-ns and unshare are conflicting (Pavel Emelyanov ) - compel: Initial commit for standalone tool (Pavel Emelyanov ) - compel: piegen -- Introduce actions (Pavel Emelyanov ) - compel: piegen -- Add @arch option (Pavel Emelyanov ) - compel: piegen -- Add @uapi-dir option (Pavel Emelyanov ) - join-ns: add join-ns zdtm test (Pavel Emelyanov ) - join-ns: perform join_namespace according to join-ns opts (Pavel Emelyanov ) - join-ns: add join-ns option to criu CLI and RPC (Pavel Emelyanov ) - uffd: add handling of zero pages (Pavel Emelyanov ) - uffd: introduce uffd_handle_page (Pavel Emelyanov ) - uffd: increment uffd_copied_pages only in one place (Pavel Emelyanov ) - uffd.c: move the code out of the 'main' function (Pavel Emelyanov ) - uffd.c: make some variable static global (Pavel Emelyanov ) - uffd.c: move code into subfunctions (Pavel Emelyanov ) - uffd.c: remove unused variable vma_size (Pavel Emelyanov ) - autofs: free leaked opts in autofs_mount (Pavel Emelyanov ) - autofs: free leaked info in autofs_mount on error path (Pavel Emelyanov ) - autofs: free leaked AutofsEntry in autofs_dump_entry (Pavel Emelyanov ) - autofs: do not close NULL image (Pavel Emelyanov ) - uffd: remove handling of VDSO pages (Pavel Emelyanov ) - uffd: do not treat VDSO pages as lazy (Pavel Emelyanov ) - uffd: Fix pr_debug format for vma start (Pavel Emelyanov ) - autofs: fix device id modifier on error path in autofs_mnt_open (Pavel Emelyanov ) - autofs: fix device id printf modifier on error path in autofs_mnt_open (Pavel Emelyanov ) - autofs: do not treat old kernel as error in autofs_parse() (Pavel Emelyanov ) - autofs: include limit.h before auto_fs.h (Pavel Emelyanov ) - autofs: fix build on Fedora 22 (Pavel Emelyanov ) - uffd.c: do not call unneeded functions (Pavel Emelyanov ) - cr-restore: move add_ns_shared_cb declaration to include/namespaces.h (Pavel Emelyanov ) - Fix userfaultfd code with newer compilers (Pavel Emelyanov ) - check: "autofs" feature added (Pavel Emelyanov ) - zdtm.py: create "dev/autofs" root contruction (Pavel Emelyanov ) - zdtm: add autofs test (Pavel Emelyanov ) - mount: create target directory for AutoFS indirect mounts. (Pavel Emelyanov ) - autofs: restore stage introduced (Pavel Emelyanov ) - autofs: declare ioctl helpers and constants (Pavel Emelyanov ) - pipes: export collect_one_pipe_ops() helper (Pavel Emelyanov ) - files: new dup_fdinfo() and dup_fle() helpers introduced (Pavel Emelyanov ) - files: new "used" files list introduced (Pavel Emelyanov ) - autofs: dump fsinfo stage introduced (Pavel Emelyanov ) - autofs: parse fsinfo stage introduced (Pavel Emelyanov ) - protobuf: autofs entry introduced (Pavel Emelyanov ) - devices: add support for /dev/autofs (Pavel Emelyanov ) - protobuf/mnt.proto: AutoFS type added (Pavel Emelyanov ) - unshare: Check private remount error code (Pavel Emelyanov ) - unshare: Define UNSHARE_MOUNT_PROC constant (Pavel Emelyanov ) - pstree: try to find a free pid between busy pids (v2) (Pavel Emelyanov ) - pstree: use rbtree to find a specified pid (v3) (Pavel Emelyanov ) - pstree: prepare to store all pid-s in rb-tree (v3) (Pavel Emelyanov ) - pstree: split alloc_pstree_helper (Pavel Emelyanov ) - pstree: move state from pstree_item to pid (Pavel Emelyanov ) - Try to include userfaultfd with criu (part 2) (Pavel Emelyanov ) - Try to include userfaultfd with criu (part 1) (Pavel Emelyanov ) - Remove static from prepare_task_entries function (Pavel Emelyanov ) - Make skip_pages function available criu-wide (Pavel Emelyanov ) - unshare: Support pidns (Pavel Emelyanov ) - unshare: Mount new proc (Pavel Emelyanov ) - unshare: Support mntns (Pavel Emelyanov ) - unshare: Preparations and CLI option (Pavel Emelyanov ) - pcs7: Extend version output via local build (#PSBM-45009) - build: criu -- Don't forget to cleanup arch directory - cg: Add rollback in get_cg_set (#PSBM-45553) - cg: Add rollback for add_cgroup (#PSBM-45553) - cg: Fix use-after-free in put_ctls (#PSBM-45553) - pie: open_detach_mount -- Use pr_perror for regular build - util: return aligned pointers from shmalloc() - Makefile: drop 'rebuild' from help message - nmk: build.mk -- Add @libso-y helper - nmk: build.mk -- Add @hostprogs-y mode - nmk: msg.mk -- Add host- messages - nmk: build.mk -- Shrink gen-cc-rules - nmk: build.mk -- Drop any-match rule - nmk: build.mk -- Fix deps for target mode - nmk: build.mk -- Squash gen-rule-x into gen-cc-rules - nmk: Drop rules.mk - nmk: rules.mk -- Fix AFLAGS typo - tests: remap_dead_pid[_root] -- Run in namespace only - log: add gnu-styled output to stdout - build: images -- Add missing cleanups - namespaces: zero struct ns_id when allocating - criu: use strsignal to describe kill reason - nmk: build.mk -- Fix ar rule for external libs - nmk: build.mk -- Make process depend on Makefile itself - nmk: build.mk -- On cleanup use cleanup-y only - nmk: utils.mk -- Add cleanify helper - nmk: utils.mk -- Drop redundant spaces - nmk: build.mk -- Fix typo in gen-ar-target-rule - nmk: rules.mk -- Add per-obj flags - nmk: build.mk -- Drop unused objlist target - nmk: rules.mk -- Drop @CFLAGS_ and @ASFLAGS_ but add ability to bring them via param - build: add mrproper target - build/nmk: add mrproper-y - build: Drop @images - nmk: scritps/macro.mk -- Enhance gen-built-in - x86/restorer: drop unused struct pt_regs - types: Remove setns override with sys_setns - rst-malloc: adjust free_bytes in rst_mem_align_cpos - netfilter: add -n to iptables and ip6tables calls - build: docs -- Use autogenerated footer - pstree: try to find a free pid between busy pids (v2) - pstree: use rbtree to find a specified pid (v3) - pstree: prepare to store all pid-s in rb-tree (v3) - pstree: split alloc_pstree_helper - pstree: move state from pstree_item to pid - criu: seize -- Don't left dangling @processes_to_wait_pids pointer - libnetlink: back port a fix for nlattr_parse() - netlink: Use nlattr instead of rtattr - criu: pstree_switch_state -- Fix nil deref on error path - irmap: use kdev everywere - dump: check for conflicts with the dead processes - irmap: don't try to dereference a null pointer - mounts: handle device numbers in different formats properly - criu: Use __NR_memfd_create for testing memfd presence - build: Conditionally defined SYS_* constants - build: criu -- Don't link with syscalls library - mount: don't use a shared mount to get a clean mount - mount: master_id should be 0 for new mounts - mount: restore a shared group for propagated mounts - build: clean up various other bits - build: Add verbose message on packages needed for CRIU building - build: Unify phony forms usage - pre-dump: don't waste time in error cases - dump: pre-dump should never kill processes - make: Improve tar generation - pcs7: Update local version - dump: don't call rollback actions from a signal handler (#PSBM-44371) - mounts: Skip already bound siblings in propagate_siblings() - PCS7: cgroup: Always restore predefined VE props (#PSBM-41406) - files-reg: Fix rm_parent_dirs() counter - files-reg: Delete ghost file numeric index - files-reg: Revert: Make try_clean_ghost() use struct ghost_file ptr - zdtm: Disable unlink_regular00 by default - zdtm: Add unlink_regular00 test - files-reg: Recreate deleted parent directories during restore of ghost file - files-reg: Create ghost files in first existing parent directory - files-reg: Move applying ghost file metadata from create_ghost() to separate function - files-reg: Make try_clean_ghost() use struct ghost_file ptr - files-reg: Refactor create_ghost() - seize: detach from external processes before killing dumped processes (v2) (#PSBM-43795) - mount: separate private remount conditions for external and non-external (#PSBM-42829) - plugin: Add PRE_DUMP stage into plugins - dump: save master_id for the root mount (#PSBM-43260) - crtools: describe the inherit-fd option - parasite: Don't left memfd opened inside dumpee (#PSBM-43199) - scripts: post-setup-namespaces - seize: remove extra \n from the error message (Cyrill Gorcunov ) - seize: don't detach from a task if a freezer cgroup is set (Cyrill Gorcunov ) - seize: detach from all processes before waiting the root task (Cyrill Gorcunov ) (#PSBM-43089) - make: Add Makefile.version (Cyrill Gorcunov )- pcs7: Extend version output via local build (#PSBM-45009)- build: criu -- Don't forget to cleanup arch directory - cg: Add rollback in get_cg_set (#PSBM-45553) - cg: Add rollback for add_cgroup (#PSBM-45553) - cg: Fix use-after-free in put_ctls (#PSBM-45553) - pie: open_detach_mount -- Use pr_perror for regular build - util: return aligned pointers from shmalloc() - Makefile: drop 'rebuild' from help message - nmk: build.mk -- Add @libso-y helper - nmk: build.mk -- Add @hostprogs-y mode - nmk: msg.mk -- Add host- messages - nmk: build.mk -- Shrink gen-cc-rules - nmk: build.mk -- Drop any-match rule - nmk: build.mk -- Fix deps for target mode - nmk: build.mk -- Squash gen-rule-x into gen-cc-rules - nmk: Drop rules.mk - nmk: rules.mk -- Fix AFLAGS typo - tests: remap_dead_pid[_root] -- Run in namespace only - log: add gnu-styled output to stdout - build: images -- Add missing cleanups - namespaces: zero struct ns_id when allocating - criu: use strsignal to describe kill reason - nmk: build.mk -- Fix ar rule for external libs - nmk: build.mk -- Make process depend on Makefile itself - nmk: build.mk -- On cleanup use cleanup-y only - nmk: utils.mk -- Add cleanify helper - nmk: utils.mk -- Drop redundant spaces - nmk: build.mk -- Fix typo in gen-ar-target-rule - nmk: rules.mk -- Add per-obj flags - nmk: build.mk -- Drop unused objlist target - nmk: rules.mk -- Drop @CFLAGS_ and @ASFLAGS_ but add ability to bring them via param - build: add mrproper target - build/nmk: add mrproper-y - build: Drop @images - nmk: scritps/macro.mk -- Enhance gen-built-in - x86/restorer: drop unused struct pt_regs - types: Remove setns override with sys_setns- rst-malloc: adjust free_bytes in rst_mem_align_cpos- netfilter: add -n to iptables and ip6tables calls - build: docs -- Use autogenerated footer - pstree: try to find a free pid between busy pids (v2) - pstree: use rbtree to find a specified pid (v3) - pstree: prepare to store all pid-s in rb-tree (v3) - pstree: split alloc_pstree_helper - pstree: move state from pstree_item to pid- criu: seize -- Don't left dangling @processes_to_wait_pids pointer- libnetlink: back port a fix for nlattr_parse() - netlink: Use nlattr instead of rtattr- criu: pstree_switch_state -- Fix nil deref on error path- irmap: use kdev everywere - dump: check for conflicts with the dead processes - irmap: don't try to dereference a null pointer - mounts: handle device numbers in different formats properly - criu: Use __NR_memfd_create for testing memfd presence - build: Conditionally defined SYS_* constants - build: criu -- Don't link with syscalls library - mount: don't use a shared mount to get a clean mount - mount: master_id should be 0 for new mounts - mount: restore a shared group for propagated mounts - build: clean up various other bits - build: Add verbose message on packages needed for CRIU building - build: Unify phony forms usage - pre-dump: don't waste time in error cases - dump: pre-dump should never kill processes - make: Improve tar generation - pcs7: Update local version - dump: don't call rollback actions from a signal handler (#PSBM-44371) - mounts: Skip already bound siblings in propagate_siblings() - PCS7: cgroup: Always restore predefined VE props (#PSBM-41406) - files-reg: Fix rm_parent_dirs() counter - files-reg: Delete ghost file numeric index - files-reg: Revert: Make try_clean_ghost() use struct ghost_file ptr - zdtm: Disable unlink_regular00 by default - zdtm: Add unlink_regular00 test - files-reg: Recreate deleted parent directories during restore of ghost file - files-reg: Create ghost files in first existing parent directory - files-reg: Move applying ghost file metadata from create_ghost() to separate function - files-reg: Make try_clean_ghost() use struct ghost_file ptr - files-reg: Refactor create_ghost() - seize: detach from external processes before killing dumped processes (v2) (#PSBM-43795) - mount: separate private remount conditions for external and non-external (#PSBM-42829) - plugin: Add PRE_DUMP stage into plugins - dump: save master_id for the root mount (#PSBM-43260) - crtools: describe the inherit-fd option - parasite: Don't left memfd opened inside dumpee (#PSBM-43199) - scripts: post-setup-namespaces - seize: remove extra \n from the error message (Cyrill Gorcunov ) - seize: don't detach from a task if a freezer cgroup is set (Cyrill Gorcunov ) - seize: detach from all processes before waiting the root task (Cyrill Gorcunov ) (#PSBM-43089) - make: Add Makefile.version (Cyrill Gorcunov ) - Add dep for libnl3-devel- dump: don't call rollback actions from a signal handler (#PSBM-44371)- mounts: Skip already bound siblings in propagate_siblings()- PCS7: cgroup: Always restore predefined VE props (#PSBM-41406)- files-reg: Fix rm_parent_dirs() counter - files-reg: Delete ghost file numeric index - files-reg: Revert: Make try_clean_ghost() use struct ghost_file ptr - zdtm: Disable unlink_regular00 by default - zdtm: Add unlink_regular00 test - files-reg: Recreate deleted parent directories during restore of ghost file - files-reg: Create ghost files in first existing parent directory - files-reg: Move applying ghost file metadata from create_ghost() to separate function - files-reg: Make try_clean_ghost() use struct ghost_file ptr - files-reg: Refactor create_ghost()- seize: detach from external processes before killing dumped processes (v2) (#PSBM-43795)- mount: separate private remount conditions for external and non-external (#PSBM-42829)- plugin: Add PRE_DUMP stage into plugins- dump: save master_id for the root mount (#PSBM-43260) - crtools: describe the inherit-fd option - parasite: Don't left memfd opened inside dumpee (#PSBM-43199)- gitignore: ignore some more generated testcases (Pavel Emelyanov ) - seize: remove extra \n from the error message (Pavel Emelyanov ) - seize: don't detach from a task if a freezer cgroup is set (Pavel Emelyanov ) - seize: detach from all processes before waiting the root task (Pavel Emelyanov ) (#PSBM-43089) - zdtm: Add suid flag to binfmt_misc test (Pavel Emelyanov ) - ns: Remove __rst_new_ns_id (Pavel Emelyanov ) - fds: Remove unused arg from close_old_fds() (Pavel Emelyanov ) - tmpfs: don't try to dump mountpoint at 0 fd (Pavel Emelyanov ) - criu [PATCH] post-setup-namespaces (Pavel Emelyanov ) - service: add support for the --external option (Pavel Emelyanov ) - dump: add some stray newlines to pr_infos (Pavel Emelyanov ) - binfmt_misc: Make debug printed using pr_debug() (Pavel Emelyanov ) - zdtm: Add binfmt_misc test (Pavel Emelyanov )- scripts: post-setup-namespaces - seize: remove extra \n from the error message (Cyrill Gorcunov ) - seize: don't detach from a task if a freezer cgroup is set (Cyrill Gorcunov ) - seize: detach from all processes before waiting the root task (Cyrill Gorcunov ) (#PSBM-43089) - make: Add Makefile.version (Cyrill Gorcunov ) - ppc64: introduce CPU feature checking operations (Pavel Emelyanov ) - zdtm/test: Fix live/static/netns-nf dependency (Pavel Emelyanov ) - zdtm.py: Add optional dependency support (Pavel Emelyanov ) - mem: Handle the case when kernel doesn't support dirty track reset (Pavel Emelyanov ) - kdat: Handle pagemaps with zeroed pfns (Pavel Emelyanov ) - zdtm: Use /usr/bin/diff instead of /bin/diff (Pavel Emelyanov ) - remap: fix dead pid remap of /proc/ (Pavel Emelyanov ) - test/session00: close a signal pipe in all processes (Pavel Emelyanov ) - fix compilation after previous commit (Pavel Emelyanov ) - util: Optimize vaddr_to_pfn (Pavel Emelyanov ) - zdtm/chroot: wait when a child closes a descriptor (Pavel Emelyanov ) - make: update target to measure code coverage (Pavel Emelyanov ) - zdtm/session00: wait when a child closes fd (Pavel Emelyanov ) - zdtm: Correct syscall numbers for fanotify00 testcase (Pavel Emelyanov ) - define macro for stack alignment (Pavel Emelyanov ) - tty: use PRIx64 to print dev_t (Pavel Emelyanov ) - zdtm.py: Force per-test logs if report is requested (Pavel Emelyanov ) - arch: define the readlinkat syscall for all architectures (Pavel Emelyanov ) - zdtm: Align stack pointer for arm64 (Pavel Emelyanov ) - restorer: Update RESTORE_ALIGN_STACK for arm64 (Pavel Emelyanov ) - restore: Align stack to 16 bytes for arm64 (Pavel Emelyanov ) - arm: Fix wrong system call number (Pavel Emelyanov ) - criu-log: introduce print_once (Pavel Emelyanov ) - kerndat: do not report errors on feature test (Pavel Emelyanov ) - dump: write an inventory image after dumping all processes (Pavel Emelyanov ) - test: add a new test to check external terminals (Pavel Emelyanov ) - zdtm: add a new test to check inherited tty-s (Pavel Emelyanov ) - tty: allow to dump and restore external terminals (v2) (Pavel Emelyanov ) - crtools: add ability to set list of external resources (Pavel Emelyanov ) - tty: use a pair of dev and rdev to identify a terminal (Pavel Emelyanov ) - jenkins: add a script to check inherit file descriptors (Pavel Emelyanov ) - mnt: Allow for external mounts to be fsroot ones (Pavel Emelyanov ) - zdtm.py: unfreeze test processes before killing them (Pavel Emelyanov ) - syscall: use a correct type for timer_t (Pavel Emelyanov ) - mount: Fix spelling error in a error message (Pavel Emelyanov ) - arm: proc_parse -- Fix u64 format warnings (Pavel Emelyanov ) - mount: change the root master_id on restore only (Pavel Emelyanov ) - cr-check: add logiuid feature (Pavel Emelyanov ) - criu: fetch kdat.has_loginuid value on C/R (Pavel Emelyanov ) - kerndat: add has_loginuid to kerndat_s (Pavel Emelyanov ) - creds: restore -- Honor rst_mem_alloc rules (Pavel Emelyanov ) - tcp: Try harder to restore recv queue (Pavel Emelyanov ) - zdtm.py: When no logs, do not add them to report (Pavel Emelyanov ) - zdtm.py: Mark nouser tests as such (Pavel Emelyanov ) - jenkins: Add user mode job (Pavel Emelyanov ) - proc: Fix aio mapping detection (Pavel Emelyanov ) - zdtm.py: Check how user-mode works (Pavel Emelyanov ) - parasite: Load code blobs via memfd (Pavel Emelyanov ) - proc: Use smaps path for file (Pavel Emelyanov ) - pagemap-cache: Use greedy mode if pagemap inaccessible (Pavel Emelyanov ) - vdso: Don't fail if pagemap is not accessbile (Pavel Emelyanov ) - dump: Dont read prohibited kernel files (Pavel Emelyanov ) - kerndat: Read anon shmem dev via maps (Pavel Emelyanov ) - util: Ability to ignore errno when opening proc (Pavel Emelyanov ) - parasite: Add @pad argument for syscall run (Pavel Emelyanov ) - proc: Get full file path into handle_vma (Pavel Emelyanov ) - criu: Remove security (Pavel Emelyanov ) - test: different_creds -- Enhance the testing (Pavel Emelyanov ) - zdtm: Add ARRAY_SIZE into the header (Pavel Emelyanov ) - zdtm: set the dumpable flag after setuid (v2) (Pavel Emelyanov ) - zdtm.py: don't worry if a test class doesn't have ns() and static() (Pavel Emelyanov ) - test/inhfd: use os.fdopen instead of a home-made class (Pavel Emelyanov ) - cpt/rst: access and modification time of ghost files (Pavel Emelyanov ) (#PSBM-41401) - creds: dump -- Implement per-thread dump of credentials (Pavel Emelyanov ) (#PSBM-41416) - creds: restore -- Implement per-thread restore of credentials (Pavel Emelyanov ) - creds: Move proc_status_creds::cap_X at the end of structure (Pavel Emelyanov ) (#PSBM-41416) - creds: Allocate CredsEntry for every thread in core_entry_alloc (Pavel Emelyanov ) - creds: protobuf -- Move @creds_entry into @thread_core_entry (Pavel Emelyanov ) (#PSBM-41416) - xmalloc: Add xmemdup helper (Pavel Emelyanov ) - arm: syscalls -- Wire in sys_setgroups (Pavel Emelyanov ) - ppc64: syscalls -- Wire in sys_setgroups (Pavel Emelyanov ) - x86: syscalls -- Wire in sys_setgroups (Pavel Emelyanov ) - Fix 'mnt_path' may be used uninitialized in this function (Pavel Emelyanov ) - zdtm_ct: Mount binfmt misc in ct creation (Pavel Emelyanov ) - jenkins: Mount binfmt misc in run_ct (Pavel Emelyanov ) - jenkins: build criu with debuginfo (Pavel Emelyanov ) - zdtm/file_locks04: use test_waitsig() to synchronize child and parent (Pavel Emelyanov ) - zdtm/fifo_wronly: wait when a child opens a file descriptor (Pavel Emelyanov ) - zdtm.sh: remove warnings about existent directories (Pavel Emelyanov ) - binfmt_misc: Skip dumping if it's not virtual (Pavel Emelyanov ) - zdtm.py: Test how freeze cgroup works (v2) (Pavel Emelyanov ) - zdtm/pstree: check return codes (Pavel Emelyanov ) - zdtm/pstree: read from a correct file descriptor (Pavel Emelyanov ) - test: wait when a prepartion stage will be completed (Pavel Emelyanov ) - pipe00: when while a child is preparing file descriptors (Pavel Emelyanov ) - zdtm/socket_close_data01: wait a child before c/r (Pavel Emelyanov ) - zdtm/sigpending: wait a child before C/R (Pavel Emelyanov ) - zdtm: don't hardcode file names in test soruces (Pavel Emelyanov ) - test: write_read10 -- Wait for children to create (Pavel Emelyanov ) - test: write_read_10 -- Fix typo in testing opened file descriptor (Pavel Emelyanov ) - zdtm:mntns_open: wait when a child process opens descriptors (Pavel Emelyanov ) - zdtm/mountpoints: wait when a child process opens descriptors (Pavel Emelyanov ) - files-reg: fix compilation issues (Pavel Emelyanov ) - mountpoints: don't re-create /dev/null (Pavel Emelyanov ) - rst: set mode on ghost-files after write (Pavel Emelyanov ) (#PSBM-41401) - dump: add timeout for collecting processes (Pavel Emelyanov ) - dump: factor out cleanup code into separate functions (Pavel Emelyanov ) - dump: fix return code in message on pre-dump failure (Pavel Emelyanov ) - seize: slightly cleanup collect_pstree() exit path. (Pavel Emelyanov ) - cr-restore: optimize {loginuid,oom_score_adj} restoring (Pavel Emelyanov ) - mount: use xsprintf() in resolve_external_mounts() (Pavel Emelyanov ) - sysfs_parse: use xsprintf() in fixup_aufs_vma_fd() (Pavel Emelyanov ) - irmap: use xsprintf() in irmap_update_dir() (Pavel Emelyanov ) - cgroup: use xsprintf() in rewrite_cgsets() (Pavel Emelyanov ) - mount: use xstrcat() in attach_option() (Pavel Emelyanov ) - util: new string helpers introduced (Pavel Emelyanov ) - test: block prctl in seccomp_filter (Pavel Emelyanov ) - pie: move seccomp before creds to avoid resoring them after setuid (Pavel Emelyanov ) - test: setuid in seccomp_filter test to have it fail (Pavel Emelyanov ) - ptrace: start tracing processes before restoring creds (Pavel Emelyanov ) - zdtm: check shared mounts more carefully (Pavel Emelyanov ) - mount: do nothing if a root mount isn't slave (Pavel Emelyanov ) - zdtm.py: fix comparing files, maps and mounts (Pavel Emelyanov ) - Fix compilation after previous commit (Pavel Emelyanov ) - files-reg: restore PR_SET_DUMPABLE flag after setfsuid (Pavel Emelyanov ) - unix: Fix double restoring of peerless unix sockets, which are peers for others (Pavel Emelyanov ) - loginuid: save value of loginuid from a target userns (Pavel Emelyanov ) - lsm: don't leak apparmor string in the case of "unconfined" (Pavel Emelyanov ) - zdtm.py: tests should not inherite file descriptors from zdtm.py (Pavel Emelyanov ) - seize: do not try to detach killed tasks (Pavel Emelyanov ) - zdtm: Change oom_score_adj score value (Pavel Emelyanov ) - files: check fd flags after restore (Pavel Emelyanov ) - restore: restore freezer cgroup state (Pavel Emelyanov ) - restore: split finalize_restore into two stages (Pavel Emelyanov ) - cgroups: save freezer state during dump (Pavel Emelyanov ) - crit: The 'mems' explorer (Pavel Emelyanov ) - crit: The 'fds' explorer (Pavel Emelyanov ) - crit: The 'ps' explorer (Pavel Emelyanov ) - crit: Explore action and stubs (Pavel Emelyanov ) - zdtm.py: bind-mount a test root as slave (Pavel Emelyanov ) - makefile: use zdtm.py to execute tests (Pavel Emelyanov ) - zdtm.py: compare a set of mounts before and after c/r (Pavel Emelyanov ) - zdtm.sh: fix a value of ZDTM_THREAD_BOMB (Pavel Emelyanov ) - zdtm.py: don't mix tab and spaces (Pavel Emelyanov ) - zdtm.py: collect fds and maps for all test processes (Pavel Emelyanov ) - mount: don't take into acount the root master_id (Pavel Emelyanov ) - mount: don't remount a slave mount as private when it isn't required (Pavel Emelyanov ) - zdtm: add loginuid restore test (Pavel Emelyanov ) - zdtm: add test for oom_score_adj restore (Pavel Emelyanov ) - criu: unset loginuid value before creating userns (Pavel Emelyanov ) (#PSBM-41993) - criu: restore loginuid & oom_score_adj values (Pavel Emelyanov ) (#PSBM-41993) - criu: dump loginuid & oom_score_adj values (Pavel Emelyanov ) (#PSBM-41993) - make: Fix @install-criu target (Pavel Emelyanov ) - test: report actual errno on seccomp prctl failure (Pavel Emelyanov ) - zdtm.py: Add action for cleaning nsroot (Pavel Emelyanov ) - Rename cr_opts.ps_port into port (Pavel Emelyanov ) - Introduce the read_into_buffer helper (Pavel Emelyanov ) - seize: don't wory if a cgroup contains some extra tasks (v3) (Pavel Emelyanov ) - fstype: "mount" callback introduced (Pavel Emelyanov ) - pstree: more pstree-related helpers (Pavel Emelyanov ) - jenkins: No parallelizm for group test (Pavel Emelyanov ) - zdtm.py: Add write perms for all bins in test (Pavel Emelyanov ) - zdtm: Fix compilation after previous commit (Pavel Emelyanov ) - jenkins: Add groups (Pavel Emelyanov ) - freebind: Use different ports (Pavel Emelyanov ) - zdtm.py: Fix deps for group start (Pavel Emelyanov ) - criu: tty: pick only master as a control terminal (Pavel Emelyanov ) (#PSBM-42093) - test: Add inotify02 into the Makefile (Pavel Emelyanov ) - crit: Speed up jenkins test ~60 times (Pavel Emelyanov ) - crit: Fix ipc load/dump for io.BytesIO input/output (Pavel Emelyanov ) - crit: Add dump for semaphores (Pavel Emelyanov ) - crit: Add handling of msgqueue (Pavel Emelyanov ) - crit: Add dump method for shmem pages (Pavel Emelyanov ) - crit: Add payload handler for shmem pages (Pavel Emelyanov ) - crit: Add payload handler for semaphore images (Pavel Emelyanov ) - zdtm.py: Add step-by-step execution (Pavel Emelyanov ) - zdtm.py: Print out and strace file names (Pavel Emelyanov ) - zdtm.py: Print test output on screen when possible (Pavel Emelyanov ) - zdtm.py: catch KeyError instead of ValueError for sets (Pavel Emelyanov ) - mount: fix a race between restoring namespaces and file mappings (v2) (Pavel Emelyanov ) - mount: pick out a function to set ROOT_FD_OFF (Pavel Emelyanov ) - crit: Fix casts for fixed and sfixed types (Pavel Emelyanov ) - seize: get_freezer_state -- Relax stack (Pavel Emelyanov ) - zdtm.sh: set a type argument for mknod (Pavel Emelyanov ) - zdtm.py: don't worry if uns isn't in run_flavs (Pavel Emelyanov ) - mount: stop doing anything if populate_mnt_ns() failed (Pavel Emelyanov ) - mount: don't worry if a binfmt_misc image is empty (Pavel Emelyanov ) - jenkins: Fix CRIT test to skip non-criu images and provide cumulative output (Pavel Emelyanov ) - mount: don't add dot to a path (Pavel Emelyanov ) - crit: Pretty print vma flags and status (Pavel Emelyanov ) - mount: umount a temporary mount with MTN_DETACH (Pavel Emelyanov ) - pagemap-cache: add const-qualifier to pmc's vma (Pavel Emelyanov ) - page-xfer: fix wrong hole address offset (Pavel Emelyanov ) - test: Add inotify02 (Pavel Emelyanov ) - zdtm.py: Fix zdtm_test._env data type (Pavel Emelyanov ) - sysctl: don't skip erros (Pavel Emelyanov ) - sysctl: really skip missing entries in __nonuserns_sysctl_op() (Pavel Emelyanov ) - criu: x86_32: change stack align to 16 bit on parasite head (Pavel Emelyanov ) - criu: add the mnt_id feature if a test uses more than one mntns (Pavel Emelyanov ) - zdtm.py: skip the uns flavor if userns isn't suppported (Pavel Emelyanov ) - lsm: add a --lsm-profile flag (Pavel Emelyanov ) - crit: Encode back pretty IP addresses (Pavel Emelyanov ) - crit: Show devices nicely (Pavel Emelyanov ) - jenkins: Add test for crit de/encode correctness (Pavel Emelyanov ) - zdtm.py: Run tests in best flavor (Pavel Emelyanov ) - zdtm.py: Count skipped tests (Pavel Emelyanov ) - mount: don't rewrite root for external mounts (Pavel Emelyanov ) (#PSBM-41932) - unix: Add support for restoring receive queue for unix DGRAM sockets (Pavel Emelyanov ) - zdtm: add mntns_rw_ro_rw to the test list (Pavel Emelyanov ) - mount: fix restoring a bind-mount when its root is overmounted (Pavel Emelyanov ) - mount: refactor do_bind_mount() (Pavel Emelyanov ) - mount: pick out a function to bind mount a point in a tmp place (Pavel Emelyanov ) - mnt: Carry run-time device ID in mount_info (Pavel Emelyanov ) (#PSBM-41610) - zdtm.py: The groups_test class for running groups (Pavel Emelyanov ) - zdtm.py: Generator of groups of tests (Pavel Emelyanov ) - zdtm.py: Prepare zdtm_test and flavors for mass test start (Pavel Emelyanov ) - zdtm: Remove unneeded re-exec (Pavel Emelyanov ) - zdtm: Factor out ps showing code (Pavel Emelyanov ) - zdtm: Introduce explicit prepare_namespaces() routine (Pavel Emelyanov ) - fs: Add binfmt_misc support (Pavel Emelyanov ) - zdtm: Add socket_close_data01 test (Pavel Emelyanov ) - Update source (Cyrill Gorcunov ) - Remove obsoleted patches (Dmitry Mishin )- mnt: Allow for external mounts to be fsroot ones (Pavel Emelyanov ) - zdtm.py: unfreeze test processes before killing them (Pavel Emelyanov ) - syscall: use a correct type for timer_t (Pavel Emelyanov ) - mount: Fix spelling error in a error message (Pavel Emelyanov ) - arm: proc_parse -- Fix u64 format warnings (Pavel Emelyanov ) - mount: change the root master_id on restore only (Pavel Emelyanov ) - cr-check: add logiuid feature (Pavel Emelyanov ) - criu: fetch kdat.has_loginuid value on C/R (Pavel Emelyanov ) - kerndat: add has_loginuid to kerndat_s (Pavel Emelyanov ) - creds: restore -- Honor rst_mem_alloc rules (Pavel Emelyanov ) - tcp: Try harder to restore recv queue (Pavel Emelyanov ) - zdtm.py: When no logs, do not add them to report (Pavel Emelyanov ) - zdtm.py: Mark nouser tests as such (Pavel Emelyanov ) - jenkins: Add user mode job (Pavel Emelyanov ) - proc: Fix aio mapping detection (Pavel Emelyanov ) - zdtm.py: Check how user-mode works (Pavel Emelyanov ) - parasite: Load code blobs via memfd (Pavel Emelyanov ) - proc: Use smaps path for file (Pavel Emelyanov ) - pagemap-cache: Use greedy mode if pagemap inaccessible (Pavel Emelyanov ) - vdso: Don't fail if pagemap is not accessbile (Pavel Emelyanov ) - dump: Dont read prohibited kernel files (Pavel Emelyanov ) - kerndat: Read anon shmem dev via maps (Pavel Emelyanov ) - util: Ability to ignore errno when opening proc (Pavel Emelyanov ) - parasite: Add @pad argument for syscall run (Pavel Emelyanov ) - proc: Get full file path into handle_vma (Pavel Emelyanov ) - criu: Remove security (Pavel Emelyanov ) - test: different_creds -- Enhance the testing (Pavel Emelyanov ) - zdtm: Add ARRAY_SIZE into the header (Pavel Emelyanov ) - zdtm: set the dumpable flag after setuid (v2) (Pavel Emelyanov ) - zdtm.py: don't worry if a test class doesn't have ns() and static() (Pavel Emelyanov ) - test/inhfd: use os.fdopen instead of a home-made class (Pavel Emelyanov ) - cpt/rst: access and modification time of ghost files (Pavel Emelyanov ) (#PSBM-41401) - creds: dump -- Implement per-thread dump of credentials (Pavel Emelyanov ) (#PSBM-41416) - creds: restore -- Implement per-thread restore of credentials (Pavel Emelyanov ) - creds: Move proc_status_creds::cap_X at the end of structure (Pavel Emelyanov ) (#PSBM-41416) - creds: Allocate CredsEntry for every thread in core_entry_alloc (Pavel Emelyanov ) - creds: protobuf -- Move @creds_entry into @thread_core_entry (Pavel Emelyanov ) (#PSBM-41416) - xmalloc: Add xmemdup helper (Pavel Emelyanov ) - arm: syscalls -- Wire in sys_setgroups (Pavel Emelyanov ) - ppc64: syscalls -- Wire in sys_setgroups (Pavel Emelyanov ) - x86: syscalls -- Wire in sys_setgroups (Pavel Emelyanov ) - Fix 'mnt_path' may be used uninitialized in this function (Pavel Emelyanov ) - zdtm_ct: Mount binfmt misc in ct creation (Pavel Emelyanov ) - jenkins: Mount binfmt misc in run_ct (Pavel Emelyanov ) - jenkins: build criu with debuginfo (Pavel Emelyanov ) - zdtm/file_locks04: use test_waitsig() to synchronize child and parent (Pavel Emelyanov ) - zdtm/fifo_wronly: wait when a child opens a file descriptor (Pavel Emelyanov ) - zdtm.sh: remove warnings about existent directories (Pavel Emelyanov ) - binfmt_misc: Skip dumping if it's not virtual (Pavel Emelyanov ) - zdtm.py: Test how freeze cgroup works (v2) (Pavel Emelyanov ) - zdtm/pstree: check return codes (Pavel Emelyanov ) - zdtm/pstree: read from a correct file descriptor (Pavel Emelyanov ) - test: wait when a prepartion stage will be completed (Pavel Emelyanov ) - pipe00: when while a child is preparing file descriptors (Pavel Emelyanov ) - zdtm/socket_close_data01: wait a child before c/r (Pavel Emelyanov ) - zdtm/sigpending: wait a child before C/R (Pavel Emelyanov ) - zdtm: don't hardcode file names in test soruces (Pavel Emelyanov ) - test: write_read10 -- Wait for children to create (Pavel Emelyanov ) - test: write_read_10 -- Fix typo in testing opened file descriptor (Pavel Emelyanov ) - zdtm:mntns_open: wait when a child process opens descriptors (Pavel Emelyanov ) - zdtm/mountpoints: wait when a child process opens descriptors (Pavel Emelyanov ) - files-reg: fix compilation issues (Pavel Emelyanov ) - mountpoints: don't re-create /dev/null (Pavel Emelyanov ) - rst: set mode on ghost-files after write (Pavel Emelyanov ) (#PSBM-41401) - dump: add timeout for collecting processes (Pavel Emelyanov ) - dump: factor out cleanup code into separate functions (Pavel Emelyanov ) - dump: fix return code in message on pre-dump failure (Pavel Emelyanov ) - seize: slightly cleanup collect_pstree() exit path. (Pavel Emelyanov ) - cr-restore: optimize {loginuid,oom_score_adj} restoring (Pavel Emelyanov ) - mount: use xsprintf() in resolve_external_mounts() (Pavel Emelyanov ) - sysfs_parse: use xsprintf() in fixup_aufs_vma_fd() (Pavel Emelyanov ) - irmap: use xsprintf() in irmap_update_dir() (Pavel Emelyanov ) - cgroup: use xsprintf() in rewrite_cgsets() (Pavel Emelyanov ) - mount: use xstrcat() in attach_option() (Pavel Emelyanov ) - util: new string helpers introduced (Pavel Emelyanov ) - test: block prctl in seccomp_filter (Pavel Emelyanov ) - pie: move seccomp before creds to avoid resoring them after setuid (Pavel Emelyanov ) - test: setuid in seccomp_filter test to have it fail (Pavel Emelyanov ) - ptrace: start tracing processes before restoring creds (Pavel Emelyanov ) - zdtm: check shared mounts more carefully (Pavel Emelyanov ) - mount: do nothing if a root mount isn't slave (Pavel Emelyanov ) - zdtm.py: fix comparing files, maps and mounts (Pavel Emelyanov ) - Fix compilation after previous commit (Pavel Emelyanov ) - files-reg: restore PR_SET_DUMPABLE flag after setfsuid (Pavel Emelyanov ) - unix: Fix double restoring of peerless unix sockets, which are peers for others (Pavel Emelyanov ) - loginuid: save value of loginuid from a target userns (Pavel Emelyanov ) - lsm: don't leak apparmor string in the case of "unconfined" (Pavel Emelyanov ) - zdtm.py: tests should not inherite file descriptors from zdtm.py (Pavel Emelyanov ) - seize: do not try to detach killed tasks (Pavel Emelyanov ) - zdtm: Change oom_score_adj score value (Pavel Emelyanov ) - files: check fd flags after restore (Pavel Emelyanov ) - restore: restore freezer cgroup state (Pavel Emelyanov ) - restore: split finalize_restore into two stages (Pavel Emelyanov ) - cgroups: save freezer state during dump (Pavel Emelyanov ) - crit: The 'mems' explorer (Pavel Emelyanov ) - crit: The 'fds' explorer (Pavel Emelyanov ) - crit: The 'ps' explorer (Pavel Emelyanov ) - crit: Explore action and stubs (Pavel Emelyanov ) - zdtm.py: bind-mount a test root as slave (Pavel Emelyanov ) - makefile: use zdtm.py to execute tests (Pavel Emelyanov ) - zdtm.py: compare a set of mounts before and after c/r (Pavel Emelyanov ) - zdtm.sh: fix a value of ZDTM_THREAD_BOMB (Pavel Emelyanov ) - zdtm.py: don't mix tab and spaces (Pavel Emelyanov ) - zdtm.py: collect fds and maps for all test processes (Pavel Emelyanov ) - mount: don't take into acount the root master_id (Pavel Emelyanov ) - mount: don't remount a slave mount as private when it isn't required (Pavel Emelyanov ) - zdtm: add loginuid restore test (Pavel Emelyanov ) - zdtm: add test for oom_score_adj restore (Pavel Emelyanov ) - criu: unset loginuid value before creating userns (Pavel Emelyanov ) (#PSBM-41993) - criu: restore loginuid & oom_score_adj values (Pavel Emelyanov ) (#PSBM-41993) - criu: dump loginuid & oom_score_adj values (Pavel Emelyanov ) (#PSBM-41993) - make: Fix @install-criu target (Pavel Emelyanov ) - test: report actual errno on seccomp prctl failure (Pavel Emelyanov ) - zdtm.py: Add action for cleaning nsroot (Pavel Emelyanov ) - Rename cr_opts.ps_port into port (Pavel Emelyanov ) - Introduce the read_into_buffer helper (Pavel Emelyanov ) - seize: don't wory if a cgroup contains some extra tasks (v3) (Pavel Emelyanov ) - fstype: "mount" callback introduced (Pavel Emelyanov ) - pstree: more pstree-related helpers (Pavel Emelyanov ) - jenkins: No parallelizm for group test (Pavel Emelyanov ) - zdtm.py: Add write perms for all bins in test (Pavel Emelyanov ) - zdtm: Fix compilation after previous commit (Pavel Emelyanov ) - jenkins: Add groups (Pavel Emelyanov ) - freebind: Use different ports (Pavel Emelyanov ) - zdtm.py: Fix deps for group start (Pavel Emelyanov ) - criu: tty: pick only master as a control terminal (Pavel Emelyanov ) (#PSBM-42093) - test: Add inotify02 into the Makefile (Pavel Emelyanov ) - crit: Speed up jenkins test ~60 times (Pavel Emelyanov ) - crit: Fix ipc load/dump for io.BytesIO input/output (Pavel Emelyanov ) - crit: Add dump for semaphores (Pavel Emelyanov ) - crit: Add handling of msgqueue (Pavel Emelyanov ) - crit: Add dump method for shmem pages (Pavel Emelyanov ) - crit: Add payload handler for shmem pages (Pavel Emelyanov ) - crit: Add payload handler for semaphore images (Pavel Emelyanov ) - zdtm.py: Add step-by-step execution (Pavel Emelyanov ) - zdtm.py: Print out and strace file names (Pavel Emelyanov ) - zdtm.py: Print test output on screen when possible (Pavel Emelyanov ) - zdtm.py: catch KeyError instead of ValueError for sets (Pavel Emelyanov ) - mount: fix a race between restoring namespaces and file mappings (v2) (Pavel Emelyanov ) - mount: pick out a function to set ROOT_FD_OFF (Pavel Emelyanov ) - crit: Fix casts for fixed and sfixed types (Pavel Emelyanov ) - seize: get_freezer_state -- Relax stack (Pavel Emelyanov ) - zdtm.sh: set a type argument for mknod (Pavel Emelyanov ) - zdtm.py: don't worry if uns isn't in run_flavs (Pavel Emelyanov ) - mount: stop doing anything if populate_mnt_ns() failed (Pavel Emelyanov ) - mount: don't worry if a binfmt_misc image is empty (Pavel Emelyanov ) - jenkins: Fix CRIT test to skip non-criu images and provide cumulative output (Pavel Emelyanov ) - mount: don't add dot to a path (Pavel Emelyanov ) - crit: Pretty print vma flags and status (Pavel Emelyanov ) - mount: umount a temporary mount with MTN_DETACH (Pavel Emelyanov ) - pagemap-cache: add const-qualifier to pmc's vma (Pavel Emelyanov ) - page-xfer: fix wrong hole address offset (Pavel Emelyanov ) - test: Add inotify02 (Pavel Emelyanov ) - zdtm.py: Fix zdtm_test._env data type (Pavel Emelyanov ) - sysctl: don't skip erros (Pavel Emelyanov ) - sysctl: really skip missing entries in __nonuserns_sysctl_op() (Pavel Emelyanov ) - criu: x86_32: change stack align to 16 bit on parasite head (Pavel Emelyanov ) - criu: add the mnt_id feature if a test uses more than one mntns (Pavel Emelyanov ) - zdtm.py: skip the uns flavor if userns isn't suppported (Pavel Emelyanov ) - lsm: add a --lsm-profile flag (Pavel Emelyanov ) - crit: Encode back pretty IP addresses (Pavel Emelyanov ) - crit: Show devices nicely (Pavel Emelyanov ) - jenkins: Add test for crit de/encode correctness (Pavel Emelyanov ) - zdtm.py: Run tests in best flavor (Pavel Emelyanov ) - zdtm.py: Count skipped tests (Pavel Emelyanov ) - mount: don't rewrite root for external mounts (Pavel Emelyanov ) (#PSBM-41932) - unix: Add support for restoring receive queue for unix DGRAM sockets (Pavel Emelyanov ) - zdtm: add mntns_rw_ro_rw to the test list (Pavel Emelyanov ) - mount: fix restoring a bind-mount when its root is overmounted (Pavel Emelyanov ) - mount: refactor do_bind_mount() (Pavel Emelyanov ) - mount: pick out a function to bind mount a point in a tmp place (Pavel Emelyanov ) - mnt: Carry run-time device ID in mount_info (Pavel Emelyanov ) (#PSBM-41610) - zdtm.py: The groups_test class for running groups (Pavel Emelyanov ) - zdtm.py: Generator of groups of tests (Pavel Emelyanov ) - zdtm.py: Prepare zdtm_test and flavors for mass test start (Pavel Emelyanov ) - zdtm: Remove unneeded re-exec (Pavel Emelyanov ) - zdtm: Factor out ps showing code (Pavel Emelyanov ) - zdtm: Introduce explicit prepare_namespaces() routine (Pavel Emelyanov ) - fs: Add binfmt_misc support (Pavel Emelyanov ) - zdtm: Add socket_close_data01 test (Pavel Emelyanov ) - fixed repository url - Prepare for builds from forked repository- backport 0004-criu-tty-pick-only-master-as-a-control-terminal.patch, #PSBM-42590- backport 0003-seize-don-t-wory-if-a-cgroup-contains-some-extra-tas.patch, #PSBM-42145- backport 0002-mnt-Carry-run-time-device-ID-in-mount_info.patch, #PSBM-41610- backport 0001-mount-dont-rewrite-root-for-external-mounts.patch, #PSBM-41932- Update to 1.8- criu segmentation fault, coredump created, #PSBM-41394- backport 0009-tty-open-all-terminals-with-O_NOCTTY.patch- backport 0008-tty-Restore-controlling-terminal-once-per-session.patch- remove 0008-rst-Re-use-opened-fd-when-restoring-private-mappings.patch- backport 0007-page-server-Fine-grained-corking-control-v3.patch - backport 0008-rst-Re-use-opened-fd-when-restoring-private-mappings.patch- backport 0006-fsnotify-Add-ability-to-force-resolve-paths-for-watc.patch- backport 0001-ptrace-don-t-stop-a-process-if-it-was-not-in-the-sto.patch - backport 0002-bfd-add-breadchr.patch - backport 0003-proc-read-all-data-from-proc-pid-task-tid-children-v.patch - backport 0004-proc-parse_children-appens-new-processes-to-a-specif.patch - backport 0005-seize-don-t-catch-all-processes-from-a-freezer-cgrou.patch- Update to 1.7.2- backport 0001-ipc-save-local-user-and-group-id-s-for-ipc-objects.patch - backport 0002-sk-unix-Fix-typo-in-name-length-estimation.patch- Update to 1.7.1- Add criu-d150d6f2-freezer_dont_catch_kernel_threads.patch- Update to 1.7- Update to 1.6.1- Rebuild with new protobuf-c package- Update to 1.6- Create python-criu and crit subpackages- Update to 1.5.1- Update to 1.4- Update to 1.3.1 (#1142896)- Update to 1.3 - Dropped all upstreamed patches - included pkgconfig file in -devel- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild- Include inttypes.h for PRI helpers- Rebuilt for https://bugzilla.redhat.com/show_bug.cgi?id=1126751- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild- Update to 1.2 - Dropped all upstreamed patches- Create -devel subpackage- Fix the epoch of crtools- Rename crtools to criu #1034677- Update to 1.0- Update to 0.8- Update to 0.7- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild- Delete all kind of -fstack-protector gcc options- Added arm macro to ExclusiveArch- fix building on ARM - fix null pointer dereference- updated to 0.6 - upstream moved binaries to sbin - using upstream's make install- updated to 0.5- updated to 0.4- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild- added ExclusiveArch blocker bug- improved Summary and Description- updated to 0.3 - fix building Documentation/- remove macros like %{__mkdir_p} and %{__install} - add comment why it is only x86_64- initial releasebuilder5.eng.sw.ru 1709794419criu-3.18.1.3.tar.bz2criu.spechttps://virtuozzo.com/cpiogzip9?tw0~eZhk{(A](KE;rϽo;3sy3g6B|ۋ  oNКO?7 /3^~^A^/kO^I_k\b,CCSomk.7Կ\L/A} FZ~,9VAEµO,օtd/\G/&퀬i~J͕HJx+$ܻh{vY@ӂa]5%e@ 2T_ZkV6<:uw2^ *z.R{z_i+vt\Ns\:]2ָn3ŜBxteV y-.:S?/D"Px򡚧@RD,cR|M13vlijtXXBv:>W:^$ +zI`κ-_+Qܜ+zu!;Ǵ̖9>W_^ol7ͷs h]WFirV =;Aԧ~ձfqp"ZScXF_;\.2u)x<1vrtDҬi9䓎ySk!yӀCN&?+&WvϿ 4ᖳ,^lXW4rkZh\^k_RӴrLQ93x5njm+K kGSM--^;ߏ^z].5.wD.wd_ : hh8y["" 7f%G}EDsUq ߖjv,$y\Dູ㬃ClQiѻc ˃"=c͛q-"Be-3{)[ MZYCTgqL]w~3 \t}SXJ3k acoo`N pdbBjDPG\iMOvZ XQg٫uƓ!]`]In408 )9_'Sh8?Mg^μӫTXuҦ~vqj4$3bi oIt_,\<gdV18ϧ7MWMO,}eh:;-%3T:̘/o)WdLmmM˽t =i{ђsyQ.QScq|Pw=KJX vNmo~}oNeqZ#Os#zJ79rE7F,v0kbɏ ]!dgsWDV4VC|T :yG#`j*-GV9qdzTז?~)^[u Iw ;K:J|l)#sW^>jޫ!颦mz+'5S| jy"V%ĉԅ9lWQZ;܉O5O_;p7+|/%%IǗqr1B܏l$Ϧ$LztLhrgo l ,?o9Ͻu?*˫k[i{qE=Rt .-xT̴#t^(v7XX4fӬzS ^E!eҤ,V|3r.Aoێ$ʪ%U@I}O-?~% NSs2 NMm+rk{rYkۍsKGK+7UqA'',**Z<{4 ȁ\3.j 2\+4)]030ÜO9aJS;NhZB8Bj X_L{I\'!NA'=x(;~25hp]:tB)@!;@hu\' C ANkB9e$3S0 Dc'd/uM]vɔ{z@Ba<9\Lz:!"O)e-Cj춤aU)N%?bSٖLRllILR x/+B[]@yItz%W-F_s!B7tڒ5שk%gOV\2_<G|NJTDr{5.=+v 2}l)erT_3+Q]1u7!MkO&ݻ?G7?)ow< VȱJgiJeaf*uP^zv٩R,,_˹Y^8YXZֵw֏L*"b-sj&= ѳF! Jg`!В[ߺ.wCm3NbN%(WňF  \gFm=k$̸@eJnC9פQ?yH8VWm+Ԟ"g;>gJh66)QSEE! g=:v<(:h"<8kUy5)\rG+"Ҳ=4cg|e^!O6qV_L.+_O6z+'Pˆu#y_YH V |p x<ˇ):'QaקҒESk驓A( jT*zh]|A>JnPOgA*D~03eU_eUo *ޛdooE:9\+ŴV4tkb)b*>*XX=̛*TB|5b>߭y"hI[ު om#L*|@gX_8&#+rRӛNC_RD>`i%w#.4gpIt@w#errJ.c'_2X\#TR%i@gِ8( [pHQ aBHí461\:`: !-RgKc~kAٱC΄n 6 Se]@'oDM[3aU0"Ṅ\l $k$zoHvx7j|OONU񵙓NjP^aB(RӘbҫZ0Eb!jr|NN$m{_:lTLg_HM+/k,1 Q%Z!𭷙b⢇*c쓺v7ЇJc$Q ^!I!+\}hh(Q9 By=eb RiQ~X.2% YZ\PLCJC4x"i{   e9L`7[VfKw7NI(\wc? )I@Rΰt&~_tލaE=2|EhPlB#YpJ,0"I &z C0 5餼6~o-X/_{Φ  4iG@p"RJ>2,ԇ}#N/Qb ?á9Z "TK498)L)FE#d|Sz<2ZU$T}\ZQ+5LKh 0ƏǗ&-WJf#㤤gdL@kűeUq8~-) 2 S))S*UOz᠄QN6@X!(CT:2-\ p)&sj O!J3Bj8 e0p _M _BB)q:dz x:58_=$SIUD~g*X,R@*(LtQrK3$ ͽ$@G+ ʂU׺Q~➕RogՂ\@9V{买ιX,Ut6V<,D3 U3q"\P661&׊H_!b L_'ERc9Jϣn6~FOF|} l둈ҁObr!Ԥz~t {~7(~ݒw}ѝ׻ co!qtu$,7\nWD[u)Κ$c~P I& ѱE hVEec5P$*bK-B)i҄|FHB(q3CڤE[$rFb!ǹNXD({:=.M.:`+=:ذD$nZT)?9 *y\_DYx7U:.8l32c[W}H_JWIsW:ne^|Xm]HYW$Z1_LS!b.Cԟu:kʼn,!qguڟ-كL_;Aqa?s?\m~lUYnć2# h<<{<*FGtJ'Vw9{?)rYp>,dz"Szf j;?YTTx^"\}DOœ8YU<cOe{k1/+cdT 5Z`(&ctcHc#\0zu2 C# nl)٭ g㷞n7T%]uqk-NZ973˷ YS;{U]Z\/k$e:b;O.JJ|,'5*%L) Z_V5K?{’uvESiJQQ18yjcЊJf,**t>;iOq:x05Q wr81ꃀq.g4)ER<*wp!W̾#3zGc ='Z~R_ȄMpIglCMe5ʰJdzO ΌjЯ-kéd N)xVx(X8E!"0E2bpQ,hIPj5{6,XqȮnl )$i|pUk[@#"̿k6ыko/oFE,ѓ1_y2=8mV54"uӄ3O5Or'>귄Id'3ݰlPּhUX[^&&g}K.S/dmYzl~; 2񠐔Ffnqu'~kW{\h@gůE#T~^I IYдiܽ lV3G\ t$=J)1 bC_gdɪEAv**pL@, ;$".,S,qQN.#4֛"35sv6n%,\/-ږ_-T7]K ЭQlsq$,.}+!y;NuL^Or'xWL ǎ€b}o+t,QJ%wvkIj_ȣKЂ5wZ9mÚ?1UG L&03TQS|&j03IN-Ak{o/CCdp @l Ǯ7zg4ClI1vLK2\yOuj \'$xE$g}Fq IRm۱*J&-Vo:!$?a9 : 7GⱩ)f|A!'KqR[NxAW4zMu*[gale.ǹ$<ʗn\Mڞ:2^h kpXBL߫"Md+ƛY,k"_JO.߉Y؏c|vZ ?ie 3Oot:k'3gcKUϳY'DiR^5"#_DG)YVv':Ͼ,{d"|<'<7]Q?[!N$ TINUOn_1O\Z(qM, [B^`&IBDM!Fz3w6w4[ϑ+ yE3/?TԜ2_09.0s8)Q:yQ&,aYj_WLkK^3'7cF] l*F @eD ^uVY(ǥ1^^@RL-d~"|Q(V}{ TeDl^FaOX2]l)^'vZ)}_;(THm+}3sHRUqb,úT %Sgre1(Ai/l2E_]aqU 3_;-hw "M< /Z,13Ô/}rUM1#$L]l.kmzU⻲Tmqu!=(DVhHBjF"sVJÀӣq16ę/ܙGbJj_GZ%3HcU{ g(蔍?RKʾ'T+D%`% S$Y ?uBɩ>5Q)a+ 'd #vƪG>WEA_(R Fw_đaavrksR1$=d~8v+V )wRXgMI^в..,MQΑ6y OdۤXS i%&Bhkm1;RtӰhDiE,:#6nYx7DXۙ. Rg%11BNƯ'3K*ɽJ=ʢˀN_> k8v9 p7ԙoTQa~~Z_T4 {bltDyCРGdxSvyDXā=䌮ub`릡l1zABEZ )L9Q|*y]K}? t'߆i] i%C7BBnZ(zڴ_narͮ/cUs I+ |xṷ<8*Jbӟ"b1ۍ:wķQDnjFbeyŝf2is?; j0;RRĩ$ vv4!(U$, S'{ŽBH dReeq(y:\dZSBʌͣѹ4m)b+]?YōT@rCt !LR0ш/$dvV%)Ym ejB|%Y4e;Y\=:U/SBME%#O%4JMDWY1kmjny!uFvrY>vY!Aӳ+ߌ9L&Vhb.@-LSt:|4[U|ύF&?okw'!*Ok(&cUVvkk>4t#F#2<0gŠկq#Tl;tzўgiIŰz>$ ĥQX6\YU ĔӗʸrRԥ?ECOhJ |>7 eZɰ nm)>>ʸ'UꔛY_L4>ˊN²UJZ+%iMQ QHY[) @.دV*2hOw=&YEBT n Bsk=RP|Syijl"'j=e:~ٚ3yN *~O s2EwsdQ2oY-[k |ЮlB~e2zLRhOі_wj ~# lw\B{k2'Widbk?#~$VKǟ&/gXO.rZmh6cשgY$D>6No?ﱔy=s3|sĹGݵwr?~n5r/Sdddvk.o!&kXcㄵ{BF_ےg5[+U k wR Ҧtw+SïpZ^? l yj4v֛JEVUgKfu;k&A;\"pה}-ԫ MPfG5N|+rs_7 ) iMjmɃ>O]G5 ?`ya4Wka&[GH]rMdlo? l<{c\yzpR0sV{dK6|.9k*ẓpxNEnwSttlkyR:NbtLCVzNρ}~veehI!ht DpǷp{۶ ̮hзWƝZ^I(%ɘ*>{ J~44rjzs}28j;6!~spvgDrAl?B|`];bw(B1T4n%)r>>:OàAH٥Tn:D g0fA`ʉ5dN$Вp%M*J`*zc u a 2`~ڇ{w(/t:6T@v0}ܚEBM[^P@iOgCĵZHu9]h=Sak%1? 8g/’zf>}Q}y[Oz2]CҾL/KERv9\Fẗ́E1EPmU$8"$yw; kډZ:K ׵{/q=kXĢl>(vCmp5[eV6HOvŷZ]4k"q|:]]~{Mmoasm]%?g߽"3Ӯ8*1xќqw͸ڔ"7C~oŲeA$q{{-rL-YU ɮ/ofn(~WpCF- t l-w'ljIG"^G%5֫Mz9 /()\dw'-k)WG/[6.)iAѥ+x,"ȡlnJ rn~k$A[J凂*!_zqr$N6Vk O54A!{TOK\~7R}mzQbql>ޮL4EO"!,soY tu 3p7_{x7ovs:{_j)kwWׯ0/rE7xE={/}i0^tw~b"ĸ򍴺a Nl=/K(-Sf:vFb'ƈڛ{uJ/WϗG'W3u5UDYB{ iڂC"e(Q' 5M@?.MkDr e9Cs,v B0|' uv fTe| _$նsML*YXKҴ&|ѧ]yjI^эnCR cs߁b@2fK&k^9A=Wf4ͥgsc|Us8ξoP}+ڇtĨvvp~.> "Mg +<gei, ULd+%eʸhN9qH.8H?sxv&.gZ瀏{u@72pe격tf?nK3޽w3SןtMm{E:\Gd7 $ϩɌ>,(&uvC̄BA!)+/9nV>$!r4N6U%+}+0"^TJ﫽Pɉ[NG$7k[}tW} 9Iqϥ Fk|ݢ[#^1儬rңX %ͼ[|j#{Xuhg[<7#3p-QgCɇf3+VT@+p> { t/#JΨ눋$,!(~t|?4oea˿{[*x/XN:|9.ͪ}ѴOmnЮ3m~Y4usN$@wKr.RfK2vsY̘~9ᾝg3OY|l^l,Lub["˂e4DKv,q3dL0=U79/ I'Llٶ(߱N2Yj3@ ,mc~]fd\޴Kp*߿w+kz}4|`MzםMA,VAprQ@BA5ɌHeɳ@餼o}$QTX靈8F\ z6FOԞ5x&^6ƲQ}PzҌx)6EDZU ƉBĝb 4/'/*4/h֋ V);SD m6 @ʞGeHJ(CH^v eF~&F𳲭*+15JfӋ9 7G l57.6_V~cJjli/vpRSxjugI $256٤d%0Cy@mZw ^z펷Gru"Db bi a\t&\~,9:)ҪDa\u(vc,C-גV}po?_dT\ڎd"&?I&}"aT}"`Y59_TfR-i1:Bn^9 t$Ǎ5] o]*0X>W1Wmy6@MIud(op:)KDY]HmyXhM-E蚐qg#- OVǥv!mIG4RskihmLJ j4yw!ݫZ_B"l7kK>t\ٰXd@9ׯ-퉶yKRp1^qc;R k9vOHǃ>Iϖc*qubG =Ibq]s/-=3g^?Kgu#NkfquY:!B d;FQ3Wv)q:*g Q<3HTl0^&_ ! 6.`vsbMo}a"I(,ˎB 'u,_!`6@1}ak{Q;-ʿL|3Lkb}!G |׈,_oQrIJ{s /.-đMXMX /ܺipl3$~;w~]݋>eX24.8a c%Vv_mpnnVomA?1 c/^Wfj ZլxGu5~mΧŠ@{&o!!5 N+[)'t!¹ e':5 jT̩6|L;7)4M|]\徲\*8m0HJ1~՛ AX޳s dCzۗA 4]7x3laQ0;'KKdP>MSMTqҌ=QGM܅7Bb 8)UPMskOAN#%-9F82cۜiFy4BlO^p5w}]vy/<4mv"lOj&ߞwN&*i3r-4qc}=QM~_2xSZOTg?K\ϲJu^(9ONd2v6dzZrru8W;``gcc?#{UtbH/l?4 YcLb[@߅C-Þ&@w/qX4<|m|f5 JuI!!7mwCջtݡ8{s5 sƄLDW}`:,ۍPl0$WlgJE#hHE"Ebu $$P q!-EMޡG=_*:[eԮcyp&I?+&FbooN @zDǻWF[ky$'W~zaVCm԰B%A A+)reU hi1-XKUPUAfAWj|?֦C3 *! 5AdYS( 9Ybf:NQQ:(*H#zh0ԉza+]`A,jj099<^!!7OOw=ԟعE]Շeg_4$7ۯb o/Վqǝ;7GVT)'܆”%9[NK@.ž+:^ácom|s~0%5wV6;if̴ G 1F[>w1&{O`D1, `vmb4FÔϵP;^廱(3s]קQ8N6fFLOW __cOG .Axќ@l &B^뙊=cqz&1տ'lp4@/2nHlI;ҍ~i"jyRkCSQT#XxBAh${ߢ66y[ɧ4`p@1&1tb!1)mf3k|f8avB?Yg `aXxuXٳDq<6uY/0grtˁ`,1c5\`eF]ob`^܊8z8R#oLQⰜD [v6:5t\{ H 8H_fk3 -kkn$Gwb}[!8O\b9I;nqz.s;!4X՟o n}e]e70 1XaQtz%&؆-aMd7(oQ,>3TEP.vS#?iNtX5MD!h@,1m_˺]Ԥwkbmƽ%m&n3DY;m{ Oa"g(sWdM<54}v3By|~ruA2?yl1ܟ@ڎ>vaAm l )(Hx֘͘HCoc"lnVWC_p'gnt3ӄlof3lOAH Ca5ᦩ֘j}_1~u,f7Z⻩ƶs.C[o=脮0q1$Bhě8}}$åPD\NFa ӳ$ڍȁ7&;\џ̴H6Awtj\iU67:-l Lnl+T}01hɜL@NjآnuVTgJhͻ/ɠyLB ۥ4`%I Ms1JQLLEdbAF 4XcD 9bݩ"B DԉRD@@~f g'=H( HU)jXaVՌC2`';OR5],#獾32 BѪ*?{FZ_/O.v"~̸fdh5$" 4|"G)]U,1x0] ǽig$5'28ZnI*1]DZԴ 4@`WfXOVlYMϕ%<]Qۭ]οf3~_ImWYx*:Ps唷k0soNMF-A!al;#齸,C\.DOEi5YNNՖ2J0e9ϯ>~ ڷOE y0[_P~OcȂu<4>:|V=`p3$8?0ݩubuF5WDu kj35`iWu0AOpߩ2ڎ Q _FS(K~;UQ WH4 BTq(2 F#j;݁"YD@|VeN. `#(ϵ UuD;EѫE?B ~>27P; !AH>- BLa>!\-/NAPNՈj :I5.Vxﳶ'1fI2AEk-kM(CcyRQgTeBr`X]l#E +BBktԭP5Ï@ͪw:JXB8C,]M=}8nۢ_LDz>?]"u s6Ψsg$Aly|;yi\Fˑw Q6]"&75Mbfyك>ď)x2bz$Ga~V[h@10J'P\lU(HvD_SW\1dŕcG#3"GY0uԒBҪ࿫ùujFgFK'c粒Qrgq<\:0d9Buent/<$$EkQz_Qp`3-Wdk#PJ|׹Li׍=2OP޴~bqǢgU֟9kc tF[o[w?29+ ND3n>LTWځaIe:\7᛺mEu)Rd'vhgbrnޟt)_϶bLneY|^{klGz||`˥"K KלS~=Exg]T`^\3G#lͭHN1@C~ٰ}wcсyghhg,wݽ!B;fԞu&#Zkp~ eMQwƳcƺ;16Ů-ʷ<ml@''< XtPm}}pb08mQ/CGCw4gDN K ֡cH!a\ta){d9vGZ(3N)j o8Y:K [8Cyq."A71c_8^ٯX6gr[!]7^lgWBX*AӋRCz!Dռ9u:MRXe6yBEjᄥ7zX5#$J.8zBҳA ,qrktgaG 0/A<-b=19ߡ`& s k? "yhƇj $~ >2btrkʻ"70l?ˆ,Dx;d haQ KJ4M TXdtЁ_Xv|Q h=Pf `kLhRSssw|ݲI$I$I&W 0b 9S&a03I'k|ߊԿ[g5vWOÞshs0dF}s< 6_moם "QMaFS]ySlʆP1nȲw4~ncx\z`!vۿYmӔ07 ej8wz{?RG?Vfq!d h-+b q_ <8H #mu;{>j=Gd!vK ѥcWn l1iHOG3Lv۱\N^g㻲xZ]͹Arpq/џH !B48^BHdķN C O|NXhas._X؞X8jD>8rIױaٞ~) VkbE3M:+}!+~H4Lӥ&8;o)ݪ|t;۝9#ǰf[QQ bzΊMwڊ#.RߋY+mZ؛qs3 xSthP4P8 Ix`WovՎ)zy4ӹec"q:k/w*)*h)q>~ͯfRK[zqBh =T$Ih,7 n9ءڞX3>8(Bٚ;leN([:?B>gJDhbm&ń t|>],a ?z(~b5T^7w u -SX| (_Lk% ɴOnڎD}S/;T}s7CzZ곉˚Ha!?9Fԍ Q`D ULR- д9ޒCgLlsd)US&=SQ⫏9oe|Pl$$$$qfKLb0{MGB:xxʃþ!OGq<;V)h ZJ ,X^?^TEemFՉچ|u<ٰX3a+Ƹ*b JbJZZ "./ӞZC3HOKhЉh![,zaGΧͶkRrhcWLw;5iNo[ oGg±%|/G-ި|p@zG>I$N KTwOĤPH7 kQ&x8CKˇ V F]!*"1uĢ6}=|*j@+ܽFCdyćS 3L>w*|h+ ^ӧ&!ݜ)fڹ+'WƘDrk<c@}1 <XJ?wn3>M:s,xEŸp i+cm=w37K$ !k cކ{ ŸpN_1ٕ'@&CÓㅼ'ٛl$~-4L09}"]褽ShTUOJXTaSA=-؛bӅiu\ka >ݠ4!&2ɜyX:9xSϡa_cuHHuūK_tk'ce/@(g($ @Y~Owѿ g0nJc3v}٬8v[ε\j2wTn?cʦ5q1=$K_I(~KF^j:LȬ8tupYVg\&ΟՔTa&f;DW+zpʤ`գ?u1]n:BdW |קyo2Azr|lá~9'o]B4B4o)3 6m؛#LVڵ)fHa)&Y5'$19_z^(zª8n:j*RcTV܊ޥnO,Nn`  J+&z-7&}S~49ޒ \Yes9|Mړ;x&m"j~>>Ϩ= c#2&0Q:Om7G#+߳~X'V'eNaV>:286@vm/6FpSm $I3m 5s[lsN4! >GHOQae-T][XOPۓj4M3n8܎U@b<"_ rcӘ5QrY׫ClHJc[g{:@:f*4&ňRB@%jۏL% Ƅk۵ǍgʈEʪb8S(U+]>>y gv<h ֻ_zE +ar%aS8:qxXW땲}Xy3q{j{f]%8xz6"|=v'M%fl,6৻az}zy:Ýӏ&:gWخqr5,ѝr%ۆ56|U˹qz!펎zEdC œvr4[n(82~y9H~p+8^x2!5NȓǤB$)|POT}v3ȕ5UUU- b B]6rѺqf Q5pQWӶdycϏiOZJo_~ǁd Nvz_o8H0"W>+߼\=H?+Ok ^3\F]'}1H 'Cl"q%9'I$+XT0B jɯo <#03)c[SksxSw+lUW!V+N&VcOmm/[=JKLd>qSSs?e{\۶C_W+xxv!]*_e&{ߩc~]kF? Ҵ-FDƇB#% E[=O&dPG2#'U|z~J,4,4~2# J㒲;r%҆#-=3Q_FP|5UW^;F7 F!Bh8yr!oq~.r4h1$:2R2)@B6A,b[Rvh2ʡFQJ4#M aʥ7TK`09EL\]xmT$'8^$](7m1)ZK֒?'kB}6Ds(MHI@~)8.[lDa}{r$ǔbUF,MЊlOTt_ YR\2-%#Zcߦ]J` ޖTsÛ%p#o }?QW!vѫn03 Z,PdsץtWԱ+ ύ./m4e!ƂYC͛1IAGcAAO/Ē|+EEAMLH+ո_-7y!+k (jOWkk*"ŤB7t\H+s/?FF8%McJ̚|7qn.fA*'[=+{?ƹѾ1> *U͗72)$^&EVAxemt\K,ʵ?fSR*P<_)wa}u_Ej^ti78>n=+qעR+T n苏⍺T8DPށNׂDrb /8ˉ~owMZ/,h _Ej$ w~8+(IW<_',VDp¥ƞRZo)g)ˉ (u@mΣ/sxG=FW<pO7Hj $bLSE4q~O^+bQ2rHq=HR"Ҟz_v>"a3,&(`:l SBdarAXS3_cTJ! ֟A-iq'Q|PhkвRR6h>$PPpԠT4)KM#(IŢBוUL}r3!3И~' V \SńP$4+ =z UΚp;ͶwxMCWM7p !S5݇b"(]ޑǜ拄߇`8Lg21C=}92R_\=|/+ciǫ}mRdD\=v긦IZ r$5EK6X0v-r 5K'(znǡ$7C%=Ob_&_Q}G{et~[M{Sf!IS&a[*ء~п2aG}sxsF=ɂos dN?M]tǠu W0(@!vUB>|Sw3n2u@[Xn#8[x6w(͉h{юhp%?lb@߬{e { ED,tkr:/8֟k%~:^r;͠1m] >$ܾ흢ٚ ߓc;bJq o\W1ߙ8קN|eDF2adIU|gA1Ο>.)(QH$hu+i.M7#kI[)aLlƜe g ń|K} 4Ʌ4J`EQ #yO Y"uw&7 "cxDhChbGc,)t_70TaRqG| a)ӛlim߾%#q bqOIn`l}) ̛^y )@' kB︹QD41\Qϡ&jmΩ[I< uYo[wotۢ"0g.Z' n>b*-I?Rh{- IvFb7a%\2Ń0Z?ӡ$5+-:Ү0LCe%LO,_k7>ΐd!"h|Cs#v*+މKUC•쓖YeV=] zBL$&@m:857v:Zh(a"Kȅd~fg})KB}?6+&%ME"#DV-8 fm5lLf/_l`b#;\`I /W8o.\SezL>w N/w)wa9מ 4-'uN[\u*17ve&]|xs5^q/49o/? Ɩa< *aL@ n fx3fQwz6!2M9ZGy3I*|NzBY5HS0Rt߫&b38H^oX=͐tZ(HŹk4|ƢmTuk=UWG"6FAs|RriYmqjqn &#_1N8l"=Zf*^ަ>Ҹl W9pe(|<Dbq"`!"+"YG IhBuٙ9dMGJf1`Vlwv|Hu'DC!1[~o:l"hoOԓ{zh}'-G '!>W%B TCغPX.{@T7&nSAY54j, 8s_C{ߞ&t9d{d!\c:;j:2 T3O!m:*{NpaGR^ h.uӲG˟s%SXSFsX(1.V 8=ձHvJ%q Jg܎ yfHiF_HJh#n꒨>sx|\Ǭ{-nc:. cUfHȇ/y?ˈOR;!~Kf2}e%L=^+UJj1^8<Д,6;z`x¹*MU Fj:,v|oXX*9Wn f={,8R$K4`0άF D (CBGƇ)GP {[4ztV8gmʘc_ ё֏\Myř|PT^^2eY-IFl, %pƅN[Sa,^pm)]DZ). :2$mHH C2 f5/R[hm6}FP`49Fd)^(shMaBNOg3@*=[NLONSaS$7]ݻ(̢ՈD$BjuRޫZ\ ɺ0B<~.;|O}Z=e|UFeX@Ef$e.F,R<+bgŵ)NEǛXNB]Ә J6m2L-&cXd](4W wσWɎםwP +*UmSԦ0+}UoHhXzZӞ읷a"zOgszQ6 G㘆nT.c;Na,bnh@OfFu)3Vq-]vdU=i>>+vIߍ81#>Qɔ^2)9 3aR l_<C4qWV:k׊lD4bwhfXҖ.$> #;,֤lQj&llʎ98Z},hO8,=[L||$8䗾5 匳44L9}cҮοx; |[?6pbijRD m|:u^OQN}3,_qamܧa$m̏l#|J`"6A=Bܝ1DdCsJz\,{E6սF[Y YTF3 Ó84 %S (N%5fSȌ{{XүOs+uMx维. )Mr .3kק'O{F7QV-$HLSO/K#9MC`N!$$M^/pq,-g9YS[Y?{߸2ka3Ԫ_L.v^uHtRqrzr{ ~$55N&N&tw{B4}OCtl[!80s+yn&L6?ڣ TYt:rn"a|8F/Hgr$ eR_\36Gl2WoikUNFϫXr}2f e'&kTOkb[PDV5V|v^6B&)- jt,2s,@ U 5cHF|T4E-Q̙cݲgys{1[l@xiTUT(W{ VCbW_in.|O_ӭ7fx5ͲqGlŶx`'ZbHܝPBũƦIB! ŧ^H/x~#䪃 ndEPLVNm[i;V-lfBpzs}ui1'&.CvoC?;N/C퍺~6:<$[Lgi>bܝpIzܥK;+޶ma1Smg򿢑>N:s|F+,MݶW:7vƖ[{ϲolWe1.7;/~Db쯐4 S {9-[Zx{spFH=}0(tUvx7A˞A ^Ӊo)#&.2C:4喽@A2$ l3ʶ*OVO8svƜ$篝ksm9p׵ Qi(1{`E'&lZpe4[d8 Ȥ&N86ؠkw["K;(5C9z`u[pz $ >/UdbUQUUG\ʢl#6$PLix[uӅyAm26S((ֹ%ύTޛ^8v1usu8$?vBh GbQzL"($Uk}Q36\.Y"C ND4W>`oal|rWp>3E ¯Ʉ}6&C/gϯ\S{$4EoBC=D YT{`[WXƪϗ+S05{y'q|\x|%lm5Q_#o&YlXCk⅕t*նsEmX:LL1C{8&~QĊ6ƚD_V\dUbaڜ`4&#H~ŨwiC].k5("%+ۇZU3GwJw)Cߒ|*6kL]Sn[,]uyOʏt|8QdM=X5P&JnsB0& ;:dkޮOi{tLOp*o/2?CuBx+@CGSE0j0F0q_ž" Sf )hQfK9$H\G:y,ڵu?;ѬofPo]<ָ+##Nru< 2䧄{^rWkMl4L@ (APA1 bT%C̠{ F]ůʈB|U֓UW7g˲^2r.m?E`+֛AUJ5s>~^F6A!$YH$װKF@7ܜy')螤C*8ߏ%3vն lw`t휢jPl6y~.2; Q"9:wd 6_GtOdjI"1ea:4hVb:euW+3U奵e@%7mP&s%(j}(dͿAt&c1@ހ[A 3<AD1^dsE8ǷZJ5&Ǽs^ROT1>ws6?Tv/yVH,359xr⨊ێm ij¾JݢpZ3#̲T0m㸕ſ9Ewb$iN+%av4gȓ_8n9 /p^>,@sips~~RnD`Z^y|w l#"8Q98ˍpϜ;!f˞%X;Fꓑ? rHSĕO*C:/wֹ9N"T4g17e{floyIu&u5.,Vx%d>Gz$r1#;.* 46v!v&!U,I55t}6Yf-=JKQSL9)>5}Xd/"m:b4rm ~-!V{~1}eF2ԤpEՓ(~껼~ZbV|e&M~'$ԇ(Iu8!%:3"4 SP -$cm)ז~Ƚ[,%v\񨙅1' hQZiQ#愬ՎAu<`Kf1yC { UKԜ,X&f mhUe΢2tT ^`.bؿu~)T燨אM~<qhE\9O/2WT1AӅ>sn:xH;Ϯ"f֒]ds,\\^v>x5T#/{ ;FzuÁo%닐ÐM<[`k(1 koi¥ւ+{-iIif8T\Iv1գcM_ݘɟv B=RvT'bH~P5 +cU+c b"=G6Qm ">FX1(,V>˚++Ә=aΡ4S1R ) atr JPbEe8ԓ ݄yI<"-.+W  g>6q5!zߒXOA'UӖ9)J`4/JR~hqՆ$}>X:wHȇbn.͢e"D-tlz<[#q(Ǟײc*-4sTBiِ`P>kQs,s/:nTn4YF(LK1oԬBf|oCd ݊lVRerlO;6^ru;u:NCgBdJiLK3ב7YP3%Ŷ2*2j1cǩ룅T|9JHL{~CyHp\TRV洌ɵ*U 'jLJd# 0'ai{gOj17/-gi㨥kHL28/cR&3 az T *&M& ׭W~~W nq;=xo_lS)P \Vx^uԚsmɴRn[M>borGqOw; $qnBz)[V{MZl{`UuȪټal>fz"v;|!p;JZk2mClmc%{5胖cH7 {T8~ }⯧<mlq*۞0x`$M>mG[+/cNժ4mDȱW֒*),˰U_]סGHfg[6uhѦ;])(\P; .woӪ@k^akhe5)tV\ڠ[f1iHd4@A()$I$_?kFbrj:D+x8UkϞ:^y}ۿUtKNEHN"lkFIrZ׈A6Z}ox<|b}" ʱV9\"2ߦgSXȑ^[|e{+4ʇM8c/m7 :CC8TVFs>v3꼼p`}vGEvq۱97Twẇ{{U⻕\-Ӛ~jo|qjEU!xqL\E=n\nJAm~C|w%o_<BogH/wZ"(Zl6o\jr׉#G<|pV֝MRl_VۍT7Bzs]h2o!r8b_X!sU^)<=M3O=TE@2&^L'r~L'g S%.ݫ vɟnȏ;T˧oz,7,K %$K Q_,,^jw{w.WZ9sn!~]MU*=-;{amz^./o+XoE^` >v\K2/pC'F滚ܣ=QOsNC:.檜>ɯݧ!o/7+' >+(iB(t\t, &_%Pvd$ѿT~hQ[{)k<}7{jT2=]&Y'(i4LXT2gtccugM؅މ꘦6~U*O\K4Z߆R0%!QݲkپNڴCE3 h=|Q~J wt@Yg!ڴE((6ЫUڥ8+~3coq!&Dըdmۧ:'^i7\N$= .(B{25A5-|9^}Ed㦕5r#t蠟$J?N`;t T3n4zNH;-1ȢCO.>}GNz9+,xsz9Z~2P/oQ{ݞ'T8(k*]4| k''1XV4CO~qYM!qaɗ8Cl.~پLt<7QKT^PwÅ&hC$/O}&:@KN-97CeF^7'}_1~C|Hż{!7RV_ca&$P޽-y+ً>|wlcNd8GaMzefZB9-{Zo Ҫ%ȸZRI'đxaa=3= OcwC3X&™S?oB r:ܤ%cvճ22x=6G뜼o o%r c7( g5=X/+w&qvK95x|*Lᕾ-C8q$wiY\5_z{M++#Q[*U%/v&nc}n\kƭ:'sMK5k*Hm*оۃ_Ę\ؾjL} |\[MওIÑC!>-i ef/z& I:~^/p1POȿx8C; ")Rɡ*)" @AF4J1Gm^O~;O# z.ߓfkZ-y{ha0Z㮽ߞc#Y."8‡X7r||Yh_g(ř5a-}լ휝9/ctcx7ёlNQ*mއh5ٕ̍01ц LrNr7 vmm;:Ϊa~=׍_ɪޫϫv^4ce}H >c97*VvC0*$dɚH;;r8X`L6)q %ġԄ!}o]|lq8m9ۘ՜P2m%G=Osf޾>ɟ0:"Ҧzqd+bp`s8MZ_#L Cy,Qۜډoo>C-@I6Z]~ߑ M{gCV^~0mb'v;rWmk%~Ո\C ̝ d5 p>4T(aaU Dupې|Ja۽OL+%Ckja?,OB> ^=-)uuSEG[*mS&q<)9UE;0Ggd0r(4Y4l8r;~|g"UQwgnNF XÂ;KJZՄGzN[`&~Ur8=j2LT+}&ze"d:Kۈ]oí#Č.#daŬ5X60NWtݢ}ۗiNʷ qvr;Q)f7׻[Gu=>ӥ@\1n|7_1Cyoluj ml}}ռv(=k!VL;nE7Αr{nDUpo˃Hr9y; ^O!?aoW4/&i༏V H|wAva-csY,+1sq$k*%N_$8?Pgu^M|kwx| ݿхW9Jeͥ:68HGfaZ$AW_T$Lƻ4%5Iﭘ+tRك͋ܽ&#etreNI;_FMGBL ^ovk{ovb ~,{Ԡ<= HCr]_H5jլ!GTRꪤMLrxɏD(!1So7>,ۤ\)k|b6#\˼mX`خ V@|kl(_|!I?/)M#wun2CVf8Li=)BPfnR'TJ$;A Uq5^sBFnb8t Զ3n#w@BMv<\+6cQ ,B( w Icpk c䌧Dv3սvLw,o"QWjKuVidz i[Df+.aC?aϧ~Ҫq[jժ8 K9vcE3<NsD)R¬ b1mrj\3| :aW& VGT@ᵶI 7rhOc-&5/.bAqpj[Daឿ 0M' ݴ:WN},m0d5K@fX%HLL)F`(-U9I'g?,!/dfgM 2wƃZxflܙD0DDF{ [O[SÊ\j>JN%jLbKj"˱cL04Z>b:f8r"̎.R)B,ERw1ÚuјMTKDY#1LD1x bhByA\tލN6DԏgG40 2YəiԤd Ij"l(+NZd /Ɉ=MXk`pn4KA p:>Svr< 6ux1%,D'S`zn3F]MĐlml@9ԙy@If%F׽d?7&F D9A`.Yy@&r3[4xn/I5%PJ" bmAp Tj#A~p<3n Jᣖ `00*kavq!E[%yY(8hV3a I14?.;yA,Dr^[ L3 b&_Ofz1L&jAPDKr~gu̮!{y wA<;|B1/eScX|OiA$7М5'c2(: d=FqZ @iF8ta r"P 0eZMwnMh EZ#'Zš+rCW`4F9.]і1 6v]0 ;@I2Н`1$Hf n cE`m0t0i i G! T 9ćEN:g[hrʐ`a)͢)-BxERz „;bf[lcDTf"@ &BJ R%%hZ~\DM jK)MO8MDdLKMA$4PB% & "3(J $(Z* IdJ-baHPSDDKP!D!c"HK !vwgs| qpXG1Y}TȂׯjN%d^&L@.*1.Oޯk5^J/?{_1sٽזL<:ǞÙ_E/4l5g&?^^؟(71o@15ɞA:f9߃YVzTaatw gw1=|0, 2چo"?i##TE{xޭ/pOF_T, x"fj!=hjNzH\Z*|/J Pp<8P뉗IKƤ͟5d8 ҟZ! .jpkH1X3QOaPɳ/&pX!g!D b X*k VM?;4yn^ 8ƣG\G"i"r*n;K Oll7(1LabUl^;T"xia^k<HpQK=w8񎂩dqj?,{s&nkܽ8zrrs:z apH@*xΎtlփ׸QV왟 =HJ C^CpQEU4QwպwsV!㌃Z n)(s"0[9B%5 TDH'1t:kM\p&t IV32,+:݃G۰I$AtNZu8dT7jYÁܘQ)5!%%*z*$,Y q;S2Iy:cpt맛c4 Cm,lb;b 큆0斑IQeGO #H8pK4%L$p#"tAJm/3og4~)@245ienL78@:fbc659hw&&ĂdjܱsA:@hk:X! @q]ulIq$[ADI%$EK1?9 uy;w6|Yj#HlBTe{1\/ `5[<#N 3.ÉJ5~LBD!eMz$eԑn0.D0+=^jaCA /aX* Kfŏۋla?/c1Ym} h"!VtAF:%﫫y\/8]M[oۈG;g.5MB̷P_VZcqMX ^AHOQ3kT٪XߊH"1x$lv Q~Ӿ~n_^/8+RPyB"Sw>1M@o BHgiv9ۧ*%4ݷ`%&@ -:ꐪ{ +ZLI"n9V\EFMXbTRqR, $4LJp5`F}R롺V3os֑l1Ì@ge`)̐6I`؍IùļB)%;M\ەmGlB!R[9LCp Cc,{O^xߕ4TEU'DV;CHf5$q4xh\2@-%IfnwИl1z=qW9__&|5TyHB7сmrB%=gc67&ƃ=x[&f<^>_GUYcu459)~ӏC2zXFeܥI@FkÎVx$_YLkSP,$A֧Su?ԱۓbaPz@e%h[PE&[4M ȉ'm7]sbn,f#rKs# 5 @sW|y&9羨c1-cPTbh+(Ԛz:dNJ <{43ӈ?}[3nnLdtpZcPeL&@gH@(vwY;;)^ KM[w;hT`\nMW6O*' %n|IP"WH^fŬȤI>Ƹv, Ac3qU10tn. S"< w狿JϽ\;>9Ho'l,\¥YdziXN>QBrG~yG|0Ħw@ܶj?䢆D%lh.["CӪjAL>sПL@&qC| 1^7L5.[%nN}K[o$W_P 'r>ZuϰΨI NzHU|-J}ϯOk7&e1=@U$a4R2I;sm_CH-YRѪiԹ}CP%"/߷5C 1Zқ^AcǝpS{i #ziθZg*iOvZyԭ~cŒ eOp4.m^[ݟzA<UVB*[p6Ъyu{VTP_]VOuι r3tΙJz]6]]0Kjz@JoʭlQNF "SEdm?6iHfD'Z*>zoŐSp52=>Z{}J0xM\e/&}G5,lÚrZ<~x;g60{-o%e'wqicm ff=7JZk+=%P}lY3 q䄕>{  IB`D=G y3#}?=O!]NEEO,> %o 0aWn|wdžKjxt○Lc;^_9*kY8Dtp/l4etj{7>>OB ]}RMòJ:+bs~Wk*6G1_N?)o? 63vcm3߻EQp=/=rH5yZſvrhrGzs3߁MXJ5oɗ_ oV&]rJD5Sd8f]wmxxb`iI$vw @E2*âD[ 7fTE+w <]Ѣ*gHrV6!}$T1t ×l{-#*s7M#F罷sreljf] ,[#_B|yU\lo-]j 1C yl~ ٶwtҺzY4c9wgkВIG_#0J _@}ERyz&vw!yt uFDLeaӦQ5f=I#wpi0V1פK%3wOZx@V3>6Uէؔwy.̳np1뜼Jzi;sNQIkPE>ȏG@c&ݲwv5Q4\-]G]~Q= \5j_Soe2T fKL գﮚܕ(9t_Tt oJ!: ɐ11ˉI2U` y$s&3cE`4ډf{VYB.ͭpCr 9:=2G=/cMcKv \YBOq+02s/D+a 6ڑJNQcYz^$^n[hN&aPJP‰aF(F:YGE3i!lkEL()^k :1O6HM0UN\1u6n*]\K3M h C a3F}&i!DLu=U)I c\qfnDH5]F3E"L!."SPN8Z V{߃G^Ð>snvTovx~k@?OBeY3`KI/047Җ~CGcoa@gl=~]og ffh"w6vT^R]9\aB!$`,x$rzIeNǾ1`3c'Vg"KB̝4Sqb:ٳEg0Rn,#\N:*c[䇵@tYqyzF;616lc4׹s'5ۉaUafBk0 LqQUd 7Ud<:S)]͠Kp1w2W~6섌=9$뾯"izTFQb[cy!|aXy {AG'4\ǫ;VoxYw^I$Ͷsـ@s nSa;˜ ^̺#Zy㼲iB Ѩ,uJ pYYzx,idG77>);|U=AG/1 Wk$>r ^ 4:9E\W-yThѰE҉:W|ԍ{_ mm&;}zfA"God0x۟\WVx7Kt,G]:FWFzIjKI:8aTcc2AcZg!4_i`,V\+fZg8HiX5=y|htgcݝ,<1KfU7V_iVkóuMzo/ᆱ#4O =NPo=F_IעHc,!q8w}Ů.oC2 lIE`L8$J` :CC>1A!!TAU~;Ep-C^>Hn ؖ IzhGnWHc)9̾vis37+K̓"&VGrnD8S$bq1i8fީ믾#5bsާA$qL(IgxQ#ԪKciIaJ}S|SIPz()WLmcr\kÑЂ'>qp{6 }wսö5|ξ3웎򋊤/j6gpAa_f3|y)abpRi"N4CMe5ӢaXE#FZ^ ePt!7{rq1M] VAGT~)wJ5| 3iIiL ("t $nQmiq5ǰ x"tƠ3P=֯>tpq p/2?~!w]cx\τxk([;;{_vẫ'H gUv,'s 3Gu[VkL?蘜B4lk1MM5a 5`8yѬrxRS (rP љaah.Q-MYb4֌ıƖfz{t9Q{d\wbڴTͦC^1_Cpsn917M뗆t[+ʍ#2G1OxWoY^nrx0mLx3i"+3 cU %鵨CIrmvZ|5eu05 1m Ad#\ Jx"M{6+oحMuScޡBQ(5tta2)dUA3t6L[n!D6@=ܵꮠoRc{ԟE4"G ÃbE3à ږE1isrcC5t8{ek#jW!6Ɖ:)X_o!vL1<á/!weCQL &`/f͉j!L A wiQj/VK(6VdTE\wO ;8I#kBU$@s g{R+5 ܺ.9\Dp$6dtݽ K-Kb}d"_,5PikFC$"F;Y畻nu_:R!VǦ=.&TIe*iyUydi4P1;.Y4V'lԳC_nZxF\/[h<$o"jGC=Wj/%JoM#\z4c>]5}i+'G` _oMrof"^bxqi_AcJ ("gUOL끾S9Mv$z2MᏢO6y |WKw&a}9׌^H- 9~V4bb.*M|bvs,]]𫢒ϒ6;⎸q-DD7vVF)r54p0s^ku^Ӡ||ECz0cnt[n&֣|~^e=C٦Α69z5k4ʵPpgq"~'zиZ?DiGWj3-ԨDG!z_fׇ̫._\kYQ8p 8-|ERVhhTupQj/ +E_? 9 =   "$);l~j^/"pB Q! $1 IU$5?lP,UEd+xD #miu1kz:񲺴8b>yb=~ ֙ia$*HJ R2jBf(+ ZBHY@h* 2#,̠YqjZ0*0( Ra0LA!." 3 p2Fe 9 JP "L\ #*BIAdJ]5hAcVFֆIXE[~ ""c4XWSWZ i ti!ҝ/sR-gT nG# CטK44;;t:1w*G_ŗʶ/C E8$Ns" dFZT݅/fx6J2Q oZ4e/ɚ)M0Q`XϢBfa Hts[٦ˡ?u?s`ޠ6 +%|Ȁb*' #lHt턟ˆhYylHS26^L[@%6;QEw L#C%#Gt׽23)Xa"c׃x_!SԟND͘2@d`Y*e nE5%dkP5 #$6i/#4э6Q4B7xhtE)8N![2ʝTqԉ%t-Ȏ ZZ@DB:&у[5Ds% MJE>iH!"! lp3Mϐdz;Ȱ;g?Dx"ZdD@Y'c2zω7ws.WμwTEyxY8¨<' @Oh]9 |ޛ/07gI<$X9禿 0]H#fLH@_߿Qݱ~'Zs_;يə]J1 ru/W#v]ISu\kżl[/_u"i̇JE D1CJ=%+}?ƽPcv/I"% ʟG݃'\y״~e5g4칎_}seI_뢮u #skkn*Z&}AI I&yPfWsh:f(`<b.EIhfyą)O[5ZYO\8nmiQ m(Z(RW@uMݽ i ;L]2OGO(r_⒇=^='}0jNh\, 2Mc!lYΊXg.\3O$1e#}x¸$#Rg(XAm3)! o79gTx0@fGH3ݳhĶj 1B>;Rx!`C˖ Z#CnZy<5UZ7է5AfpafuOƐ?Fs@iIdtLTc":+L[sџ ^U$s) v{<=0 3fO(3ot$j;7#_7p D7CX2' 7/IA#UrF'*1, 2tFlC.bci4,#rHoD8Q s"uB d=;S^{% P#*!ʣft2e]@Y2cM¿y=edt>xIw%˯d@Twp~kՉ9prl ݐАgvUzg^S͞jy5ЩZK3K r$R6ƣ!~ Ȟ.%;&2^maÓÑVq ^0yç^GsL="GC8;v9! n.ð/TV֞CX(QNC,A"$K1çP/7\dMvEڝ7&@\|Tg s\0Ed _4բWxxJT9CXCG5<d3[!Lw+9z]:N6靭NLFZnOr9G-f=K L\fUeJcNɃ3餹ugmϿހxDҪ0^wrܸ>,)z՞B7L$@NІ^vxORex>[ Hg(0]qiyAs9tz+$?9?oڊp?bc*&kdCKGsǃ=/)`F%܍%:Ⱦt|~b-5+nf7Xxۓ{yeXj_>JќQ Y2/Ǭ^hB2C}P 3cqu{=x[ 3[Cb+K+yiҵn?\ Fr}6>[T9cl|LJsH{dhi fB V}ExMp|p6"HM8atW9 laJć>jL5%ymͳ n~G/x0^ (F!b#PLN wgj|[uTU' Uoϛ.li^huM{}iHvNsg9Q 1o]rxXkYTnVf I6[ET}R99L; i[]N͚.3Vnk}֢/9O"*Vnv9ݛF rjYs]$''#Ͳ8.<Qݶ\caǭS$;|b]}ZO~bCR.Oȴ̨+kƉQNb\`E92 ֝ۯ7x&6F$SH}jgc!=2& gE-Gsݘ;5EZ׃h'2hG,qtŹ 4ry#,o)&hvAaxc/+6iV8jCG{cz1WKMãW'iƬl{^',6N^ꝍ6ġQwCMEHClqpX%#Tm,b|55+@pjIKiY/q_,rT206`mkpEW赛^60<[FEDi3ct׀B2^϶ea(KCr'^K#w-٬Vɓo%ldp*U'r!͑va1.8~:H@:u[fލ/{r歳n%Rf|=]v1Վa~d;`BnKE6]:`PwV$bGeV_C&]_ncQ׫:۔<dyz/^g\ݥVkJyiXBH}mv-o"7rfcSA&lXD؜0a B'b7㮓4>>7aOبh5JąRzB0!SCæ ֢Tp(U*TȠƌDmH!Nc$䙚֠(q:BdAvoO 7Bi/}OgdsˈץD5 8  /‚`wbWBPQQTB y>~&k~A HEҝC*)cʄ5l9dB(4™O虷m BDc j $z68R,!dd+"̲Bvtn5U`l( a"}@eI'$?FBj!2:c{E)'D8f St`NYz{FmAjIH hCe-xCwS Oa#wtD!U& ZB^b~؇#IQ& ,y7J$$}{_d?$j?7=AL4}xəJ%a"3zq "llA)">\ +BL<@O !`&7Ɯ~**T@-O($T xcavuAc./2uS4BI5Sfx2܄̷!

((jbAă4 Oa3ٲ+#X얽U6MP y Bo)U!X܈:],h8mTy\ert]Oi$xC7=5J$/  T3C S-<2[^sM 8n@5;x|ODRI?oL6Gku8x c+; `7.~>\SH$Nݾ=s胙UZ \p>jwx&5mJ4KxC5à;<͆N 1nUW,5vM,# Ƞg`ԝgO{f%RW 4/줋#Y ̳m8{&G}E[LnͮOL?d}a٪Qd:{aGetbj ~ꉪіo{9rQT~Iz{oG嗮V&R༺2EO3SUǬ~:UdX Mun~wK~E|b:瘪׽puz9jFO+%aT7QBP+8,96ugOhBK Ln (8o m?bj2݇#@f %tJmo缫 5yrX axz#aӖA EQ;Xf|/##N0G5sK0NdJ9 DaŲ=lJ â&Luu*H @H$Iׯ++ecBv5aL!U6 Da&ϣ HR3w;Ŀ a@lgߍGlWkuܖMvmǝ ;|@@ھ%(XJS` @WEHaR]hDF|)ڵ 7+tL6aE_Byţ 6mQwZkbuzh&6(ϋ<&%?GdTCJE@ Pr?{9U=nGpb($Am:ol4C^t,Xd/s1H&]a~GT"+O \_ֱEJ*[Uנ(ª]oy_MV;ѲvtJ,<*x2fm h8LX-Ӭuegq)×fPn߯GEaԵfIuOUظB+J i,1y{7:Ţ.љ@㭼!f7bYIͦ6<ɶf$3pq$qAFjS4B'BnяL 9E*dsϞ g*@t QYpp][9&֝h BԨHWmsE XmK_28>3 otE Xj|bEƳ1C|= c1xO )í}~ Uw㙨pL(u4$zd db' ^Z!p+Z s&DD=Q~OJL4 gcaeط#..]vuK5LnØZ]S7o3)}*PF@$A"w@ޤ7Ev\p-rn٣ҝ,m8,oJĩ< WoCYstՎE7.E7X>(c6^Ў^iG_>+.j&iNT"BdYE(%nxa?S cLZ€vRpǔ9XWETMU1Pƒ`՝a|`#OϣAA1u=^!_!!*!?!E(HSRzh\:̓ 5S!өda̷>4};|VʫM7-dم<陊^q!նOwxa>Jo頇J AŬ=Yt425tz@?\wQ` #,˶ ע|{l}Xح5t0=%&a\&HLV*OBkx V(>v$s :!Xy>؉0;wσ 36Ó1n!ê(Z&ppn^f;;!,ZW9՛fih˷JCl^Ai"uX6>3yT2 >/HmSdm}h:'yF~q[Z;_AF`jE!.4D(i큯'%Y[fXfCq5gm-YZ[~}x4~`6sg7P?ffe1qa[n36*5^L흘[֞vF$OY8^j'&<ѥ8"y>?Ge]ʨqCW!̎iP4\F Un @<.}eMLИt$7 MGi5T3Lo0xܶm~[8#o4q0\U5v9]"62MڒI$^:܏[ZzrElH>ɽQrO9Nb Ppa[;eD!-CHl3-0_B Z#KU#-sr6:*T=,# G^0"jXEx# ,q6"HyLvӶ3]('^-3.QqW6#| ݽ^n|X6ǫ#}H)hP!B TIfu־#ޞw44m$hu01c^懞!/i5N]V..]<:EʸSlZ!OZe4-efhGx9[EMvJX?TPqOU!3 ˿JZ@Njo> `ј iN8A4" jÖ<-`$HҠȻ>l= ))` +CH!H2EVcMX_WvlQTR's a/aSSp!J9Ռm+>H1r#x^ kվn]*b@>!c33+MT7~. ;1"FTAth;;|^ykek3v3@{$zB&Ϩ,~_g'F?+ۧ?|OM]o!뇿dCsz노 **RpGG_W|2ߏbΔٷ)Tv_:xSWzeXYJh/}71OѿFw? \)9JrT[,A1moltq.kL'f4lёkvVw ;s*{w>vk)*cqMZO,Vݪ+oZ?_>3m[=)s7&9QQj߬=d艖1y}̱T!,FG P)>$x_ԁ 'N ݠ0M4`p~'-XDh>/mĘ NxөxEplyU%WPHlZW df%*_a-j-01J:2R+hFP77 &7`!HȁnJ߽h5 X=zG#] i ^)VYjHIUi,fh7OٶfGR@;04A<#uC;_ڐ|= !6AhL='CѸS55'2' q%"D=c6}wV8F&I"Jń4T*Z|SP ˔5tﶯrBtRwW^"Jf33B`#'d28q? H2!F `9)obeo^1Q$BލmsHIW86Kl3g/>oW h=z-y"%R\$cι>5IA W V@V^?ۿLFƌ97wa +C ]$p۲eyT؈vb179D?Fm#eȮE1LbdosF,R4>;  A)&ls3jTߔQBINAd_/Xo2hwfvvRVA U]<ʚq'u4AƗmEF&`tsc&T u(80U|} b% F6p| 2ܽ2nnُ!LX 0 4Ti/r/AòFϤ +$x^1p7ւω5k~61brr1f"K.^6ԬUjhA^U[t!?sk6:jnt_P\>=bg퇯OGӴ=9>{r[ORLyó Q'804"!g91xvsAO_p".mBoP%Ň;zF{GQHEx]RP|7M~>wgrg-fJj2l$ h)\X&?;cH~k<CkѤ. $=K`Q$Q@Wt$$ q{'~ %R T%PUQSQTS@A-PM12LRBTPDA%LT4KD Ƣa`}a`c%@d@k{l9Wi;s?I맧ESM˪d**uJ!es8})JCEK: c|VK0yO);;x$֬t[4p=C.Gtqt}"OcG=6H=0ieH0T 1&@!1f_NI/TL1;Gb v/o~;HooNh]5εAc5,1q;˸G}JۦΊx%|۶6+a^}ew|뤫SPD]~c-; PqUo$zxhf@ A?_]|ep}zy77lg k8ʂHz4^ _ٲ6}ڂuN } {Ӈ+:f My@5;LҀ)ر޺\Z f&n6ٍ6) K`t&Ah;~s[ ar㠫6@ܛ8{Kxn6\ l%:K 7H/)JfAӻ!1hX'1ێkatD2Mon2]A2#;5w/N*"8$AaS†1#q0 Ѥ%9̍g"+ϻ(Hއ]kcqh쭍q/4-} *m=OwXI Rd=5A"2;P*<|9RMma U9=YqT+>)])YbŸsi, TľÈte%rR9sr4,Bn9c4=707q+c_OMh-nuxP7h@a ( 9$CP;"uvY:jrg@ijx(^|! 8w1'UNs/\F2a4,,&Gd0'VПYVwF"9 ~Lǚy^<´cl5&Hsy}FHw\TFU.҃Fmb n8q?z+?rszi %ŗ,0^;NlpnxwtU;”ZԕfY`-qaUfSP$jyC\l~Lt-}^V MܺF[XĕN@+-9cL&p5{<~Jޭؗ@t~[x"1yDa "ʉ95Є%Zd]UrߏHpaț)Bau>`T]*|)X!/c/JV1UzF)>8e0y}zs6<0y"GSr ZYaIfke:-=;6=#i[Lb12MBYyN!ɘj=LynKwDEp?5a]]MFTG.fȒ XB_ Mw'ZoѳŒ3|ɶ:D-IfOYay70w\z⮅BNBtMZPN&䪧O]JK;:uLqQ&bqM+ni{N?+ 7`7ik-& #AA?`ǡy8}ftsp c~3;-.\Qؽ ìalɍ%sNd8e-lͷ?|[сa2٢#\}^,'ݚi^^gw̝n48nʺ뷔V{jlM";4}T֩ME؁؂{coQа"OW>w?he[.[>kÁm[Q_?Ça9ᆱ_vE v=|_$QV02M]XaMb2w5oiqٕ-5χ;wC\@_ˋ?'MV(Z.y\YT67ʳw^ a3i{&aC |ntГ#ZVGU c;-xniIfn}xm8ms/i>x]%/\c"trChFpy}Tun{g\2#3aŖڇތK7[: R3kAc5}8I{=#RxϐpӮ#2Ý}/>M|6RGtKDQ{G7Y ȡR#N.Z>~n;Y ZM˱Lye`W#3vau$7 AN̵K(Z4T]"y3s X,sEb)<ǰUd#} b_B;f5x>)MWMuJS=NJfzcsY)UuQrWjȥ|Vkzc;5,{G].'&F^5u)4p5o$]??浾׾zR8cCS@ǾBΎw:kvm. ;q=9؎lxkǟ[y S|& zl}~=،"&̪F0qqqQփMTzwbgHјR1!'7̽J*n{>dfa9>#g3t%pC7UX? X5E >|-ƕvD0KUUo^Z9)>t?՜I /b:p? U"h' Nsd4F:?DY"s۵ObJ 8:V2צ/F_U;q2v9=[#m'̲ ]Sܘֹu=y a d=.ӜLq_8IA-ۻI)-gt?`C$( CUsVվ.DY7( M=UqƉ%9JhB8xl;I#U oePc '"ήE׮V?aǤjXFηUBvo7+YC_C1$Oڇ8׬\9z-mWpaYq&Rl"d!6#S}8nH.r]Iiз+ S0EE .OXd} u\s~`n`k,r›q¬Q5y' gwQBr\WEeAEwg8x{}4Jְ؈T`>̾97(?-_l쉨`\<;V\䀞'm+i L>~O\;~]5TjPQgXce(tRz# ZaCJL{j9r&!EH|dTahO{STGtn&EoAV).K`KQ-iI=]7CA r~1.E;|:"\A&tq-HIy澿\@+}?d<Bh @Li1A Ch`v6,@V|0-o'qM% vs&<hrU=%oUo8$?^җPzk<+B!zm Kh)Σm.O(&]-tVznT9\%'kPbcZ4^&IkW:(:~y) nl5faPG+ٚSg5"|&d{s6I&cP8'"x^z5ֻ$D!GO@pj҉[:v d>u$$}TQDjHDüLk!,_aw*y'ypܵ CC8 ;cxty{bДwGsi's9O3ns7CP(IȠ3lb(l0JL^x~@=:k$9LՏٗ|wܽNeHqI!7/IHPb}=^`(kv&'"\-oyOhe?9B(ug33a//7.墖;9S.%o@检(8I8Cv'bG(#ÙuDLFv8`[  839Ƕ r@E!%DRR!"L>.!kvm 87 3 yO0N s0#EZ `E#` N(rZPD@&Re Ab  2A)dh"b"2OLH"C"ؼ@`(h׳z٩ KyUsd?x!BaS: $%4Y3#,0]bXk4N(03b0(iE[d eTBZ&p`ű(pANQ֣DrFP$ !,,BN) )07 gaCs0 1],IXh{q`P=Bha]b,v%SaiICpP a "Μu\@`Etȥ4@+q2ΓCM%8AU1eiȬ3 h83H@xԚ uP%a BHj ;Jс@ I NHdH@f`ennh+ć-D\b"WxF$9(wpIyLe<.8MK1FLhRH䣢sZ# '$@Sipъgmј'RR po:}zHCwbK~Y noN6W9F2)SɃI:,o:-0(5cDjfEnw|ڏItdoUb]L[,?t{B,Pn{\7U-憨!nbk@AƄ8m,$ .:G_aRF$`it ^F=?|m]& 0K)y-X=8~ LaAD  24I"~e$]-wHi~$tt&rk&臗DXDclؓ.EL]a7+6?O#1ﱳr8:N9zΣIuyW ӝƷ a%#q,Ұ(|2?5[2ZxF##{Ϯ_l&qy[u߲JQ@?>Ә/m1'#RK)8ԯN|^Ӛ"i/AGͅd!Pz&RC\[yVltÛg{sOֵ~rF Az7ty7~8T7b!@ ڐP>qq>|MCd58* ?`.(3A,q~3?oM"> @֡ѕɩ$횭FXGHE˷MB_ HI˯骕<o56? Q xX~ŭ^K~b!Ys"_G@7, (r#_˓ѻ"SEd$"Ġ<{0NDK`;ӇEۡЍMN١E H l,u1N.d@87x>aH>Y$` (:B7ӿ~ ݥ4(N|UqXa hTsw3y(4 dV2; C!$%"Yevw?Y_z( k9]7\7{k S_2I?rd|@Rhh<~hNL/Mہ(<)sLkFj 2\doEm<ۚ" DɰC1 f}g(Ș20ŀb}6aY[Pw1IAFb!^xց҅H55֡Ao+鼿=]]? Q~k?6.mÍyQȀɜ jD֋ 0}p2MC1ԇI ȴ1^^”\ly*D^7yk9/p"Sᐖq&ۼW#Xy Ec%PA( PJ-@3VU(d}$hz[(:yrbw~ Zo);PEWXBRh7dAk|ޏwyAziͻkNsn~P8Q$gzT4)YIzY%ae|ҒtHa.!tԄ!LƆCXd4bK6TpP=KRӦBti$f0hBd}]zMce !w5d `Vl$x[}æ¸3vjFTArSv4ChhK"% 2!Fuh';ÒWgXٟF$ٚu,)Ie.%V)z^p"p)35zB&m=7<`|O"ˑC"z}V̫76{lC zq.S-y if1()0u;՛(ٴ8\c{tHr~LZm)FBGӈ8g?x {JA~)l?Owc, ?&'ڽa=;y;]"`[_ ΜEߙ"7L^Nqb hygp*8|a@oJ2-N%&ƑwN,2_njTwpuN!Fjnb ăXNզaaH ܲij"EjȆݏƒĹ=P$oC}3] Ţ Jjnc|0ϖ[ &b'URP#im-*|\YS}d(r7G} x A Ǚ+j~*!7lG!. P ) %QZAd0>!|h" Q^vm L^GR )dQCQ&M$dA < &PBNm-y t"Y9'\2?"w)blc& @B޺ ` G&[h hJTeӅY5+`C(n{J c9fPߠM M6 F&ÖV_E.<4OAƏޑ%{AOx 5`+!ɪ2zb V# *7(5בw~6Ct:IuYtk,ㄞ\~nӬ5嗉Z_bn&8chd)= 11FRHJzaEylhaTp]} E' Wabx+;k!P7B$~lP (9#NؙYOT>V/}EdMBa)1WA@p_6a!#D q߫?kЬ9ݝ9LsmР, ˩y.ZV,B@0\K Gb;L{xxN`'HȉTVoeCc"}_#Ac;I}q@lXut,mƒP&c$R/^a c3WEYfQDQοG&"tQ(N{r4F `ҏ|;1@Z]AZL"ix$W|1,hg=雩~fE &07H͒ڏl6@i)Dd0D// P=P埆vsYB$,>my/~+T@ E:I)S@u"_p]r[ X Q0&,>K!JE"bLB.6Nvlvj"|^'ATTv+E$n{ΒIQinZUc51(l#C23 c襄bm!@t-YP5aaYyCk_* @ /_vtzDG3_΂' )1U6C3SIr\3BoPD2)H*PR) 8bzSg0=)?~F"wO߃iǘKF'1ƆkRduz}ϸn'gn뙳=,6A5d<"奜HC]˟V(6*abJOPEG[hM!m.L|4a D> dz,'c*|sRσKjuԿ%U zKI< P0pv!ʣ*O ]IApB D{ F 9vTȻ(=q,<v,5L"YKHGHC]^wut%'Db&Qy\ma+n`éYJo`CFN6l8vĨ=nDL0 H@R 7m̀v!rb .99 *D$~7d/7<A"<'l>:11H `cX0p!6ڙ!@s<98SKu V\_Oy$T嘁T o Cf="jǞ6PZkͱB݀LPH92c@<<ִ sjiNzN= 4̘|M1wYH5d@LJ /c$;@,ɼZEcH@Ӟ|FNdyl V1N@R ]mC$MS%aD1@+_A# '/L,h'5X*3h4isA3;9 1407=F$ g_aȆ5&<-B]Xa*P?|P!DL<(sS}R90ZUiD)w}wA0EX7!/C ASI}vT$ܓ%9n;!M 'H`3) (U9bb\Q}A{l>AHDy;J3B8 B0y?(|">SR~4SxdF,|'D͆E)ȤcCߜK[@ ay0?(4c1Q&Q"J!~870] B>(.PZ$6o9O Paꀐ6v1WvpfHn .QPIh|O^mB*1XEtϟ= ΡF-a~!_l=c3), ) $Q! Gj]M!TO" Ks ,&׻pk+B--Xd,'IM;8qwk{ p`}(B 1ml=x6A0 boߟ AXXd@""e)I@Cڏ}gZ KH(qEt@$0B|FDd_i_?~xD\ߋ2hfaN/nPc%_ns-DQxKϼ)3Rffp\ȏ>b(8xg9Gs; )ae4@\5}XHC?jhnY[T%J:4 j:!eW'spĈ*S%cETuT^ewEWQ~(;)bAdQulny* >W+a#Qa!3u&8`A@Ы $fj GFBB*p) JV& ndN0Lq<0䢥>PϺrK3h!S(NL;Z,.(NT So @hHGG3YdiP2U&VDjJ!D"ALwA|=Y+}.ZrJϳXzՇǝFvPu2bv# RX!DAV B_F,e2"WCAuC Q5s oDrQ>yԎ_O|I &y(1\srя~DJW!`@@E};"zAע釥Qt:>{u~"!9Qz A'[ At[ɨKrHaH@/Gzdz:` 'n(`$:0:\Y!ڊpl.b렭bP,݂B~buþ#!}6><Ͷ]xYLWKoF<&hSH$ r C ld᤺IhފN@G{0b  wXðy5ʂT 8<#('|D0"'G私1XfʇxkKprlڤ$f5 W4e`im$"HbFj Ȣj"% J0:^M*S@ Ȭ3`hu!j x-?4MlME`e;Qq Ęp'8xK:*9?9u9TImt|bVPo.g4Q S($!n6D$d~.CI`m^|gQ=7wLGˮcJrOxXW0,BARQ>J'_']dd 9f:XF~lHG86DM`2'F^ѱQqѕ;Ҕen.Eu>`m38 >VI;<kmXWV{q7i2@ E; O!ɤA#Q%w;{K G-4QY`g)דէNFx$ 3Fݢ}-t'(P}:>4?(;9p`"Ɩ I@u$n8@qs܀:Y޷òdתol^~!2L2dO(؅3|-K^@>orFM əT%zsukWoO!#DO4<ta/| * t`8W z`w'WӌT*XD/б(Тa{7•tZ(Z@cr0)F#SPeB`N3EN-c"Cn%ĭ";ӻ7oO7~we;mupŹıIP^d ̌d6نN@@cAacA@b0c@s AV>^_=5j28 wkxnqcq7FZ86dvGYQ,2$\< da&dlMG{ޅ~jTfB?YPI..xlQ%ݭz1=߻shF0 CC;9:z-̀7\(/yt1xXQnhbM)KsSq[DB^+J\ aB{G0YL5)x.$HډI΍`YP4)NUTN`><}h&ED"ZEMRY/_O5,'6?]ej)6THRLG{O<a=⠠tN@i@||pc\&HCǫƖ(CK*P۸^]NoZ:`ϝX ??]٢;… r&&9=Za.e2r۰צ.;\v{e X (9bfp5C((:E~A B,cf F Is+O2öwP~&C$})dwI y\~|EAl4{ZZ@_ gvyO3B!q㜭2)߽n2?] ,~!`~ٷb\-" 48.w0HtsHwCEkg:Cs :.,=R.KCewH=^G)oSu.< D8Ikͣ nSRF XL;A 4zGxD<RC2z AR g\VBoW]? rVv 07DoYG$T#'Eg?yGuE(QX!/c_n{t9>(\BZU6qmaf "h: T<<ȊBS" D![wwN$e:a[ʼabFVCu]"Q+ xJN5Ru8X1?m%ƊAO{bMJ-!I?G~97q3?ҧHog2hGk60zw8WxO\>O1ױC{F{/oK# 0;9ssU|!_/_?tcp:?YЈ`O=1Twm1w@;?yɯ@%N`M R pMA^b?U~U18!cf"ڙ;q=2BL5 ~f􇸀LA3~WKꉧ}䏿P4"|^\8x00`|qJp-[Y?4GanI{jzpgVH  Ut~>3~nMj3?Jyc,H;F'>9+HgZ1˨-a >&d"KH>t͟mk#B wNLB!K@ !+wՐړN vyO>#BɆ?^x^9h*v&'d>5zV<<._]`0eѹF;㖶x%c=Qi-2VDPͱl;L%Ѷ2/3-j,{ެ[9?l+ וMrBxwÌz"\?45_Of3|ρton_$)Tд&[ZGN=N3]g&0d1^q&GS2n;g^;1cg4 3ol<+[p`&fdkAm8]cx~@(S+32I@$n\,>0o@kMmd^ԒBbS 6L`S:|HЇ!<.:zZOտLmՙ%i y 3xZI$$$=g"v܋>0< a9N4m͍T7!jC!{'mt9|#IGbjE#/EZ'sC}v=g{oe,`T(5RHKoE {{d/@NB+ Lb#t=C ;&UDQMhâ: ,֪0_ 9Ml YH](Q spǙ$#uC1rcc8t۷R%x \8]܎Z⻂xo7+aNB OZ܃Ţ'/ "JQ{5FnQUPAbH+Gx,qYxye{=:8ymX.Sz\uH{Q"`6`]V5%UCˠ=6qs$ -Dc"٘t3vStl4;솀y(yz'g0Ai1I9#'#,.Jmi;Q͂U,kcKv K*& c"jP5:9CMyd.kTF @:< HN { hk,$6 n'J6.' D(VnbP[ßR؈mFz\mu܁.k'aQ׭r I&U!G7s rzs'8'>tLq1=ؚ(]韝vy9&aRi<7#H5Ad{|wnv)ψ#;J\7͛ڱJk3uD>?>۞)B`JcG!+Iu1LM7!bmZ(hcdz5aD}wfҞ; @v94PT29 Up 18Oі6"kQ(#n`f'Zs$>'v83[6fq 549OX݈T֝~bb3Kʊ"Fx@]~EnYL3|__{6i @G+ cD0C. PnXQ|6? $"igStLg>LI`,TO/֫DC@@:B>쯰؍Q9~'lv7㟤 1 o"ڹM.exI$.;k7N3↓s͑x+W<λ=~c)c-Zc87o `I%GWάp6U)uTIA^-)5ak2Se.!$ST{mC$lcI#%G&*f !CIEXv,KJKr/` >LA,CUTP M-bùD2 @PrvMr:Nϊ*=Xw kUKJ\(x}Ӓ#8; "Kn>@"_zv8 28قE4z PsZûgjO# )AUYV Ki\auԑURUPF=N^μHh7gyʞD߾FS>ch]"|,*"*:CgE!l^ʏb ֳECҪy6!u#4H` nDr!a2-xJj+AR%%hiizTbgu{y(gb{ ):&Ӝk~2v&W5-W;bevr[ dk#j CΆ ZgpCU=AFz `0ltf^,lz;r =s:#hžvv"'HXIņVaEY&<@i.LO={㔬!gr#':n)B) ΰ3*9Jyca猺(Fo!aD]ݍf1"Ufenl,x '9qF U\Zٮ0E5.Z ll7D+jg(`%d0ɒA]4blJX2 '{=kۻDJqiIȏw a ^2L?\z=NwzkL@^!n*; /J3;B(+X&, k=0ǡ,@3[rwtCx$DKxmfnI5b:rHx܌'٪zፘ/㱑 šea@:yž9$XbbVEpG lBtmvHLD=2d#OvLJLSx >1홆ݤTA" C *L00%w;A?pR-uhA H5(Gxv9e[K).IL2T^f"zҐs]a g,֪҆J*Ċw:zcE!fZ@ &3EM&|W\!cqIJg]fb٥J2xkFIYR歒i$pٍCC2Sʄ y/N!&f&(GDSݚ 8"bKﱂX OGnb"}ˆRXy'TFF"䘆M^["Vm47 aN 9j#<;Sաm c@|:}CpZ܋: Nwl>`t: Ϧ蚝B>gJMʠL%فp3A`@d`N~z_oQ1"|Qb;Xj"'t5 ֌|!).p8֧C"$2zHځ,<``}YÆĤxz;)oo^H9ׁ)2Ƈ<@jH$RBpv!ݴb9Zi v(D+t0=i{FGf}l|6 ݁C4gIUDj_1I9t ǫ#3<^C!=j6ON AbXoYI>5v6>}5#DY e'-Ctk u*U*Hm4IR&'d; צw;^Ck-6EpTRL:yT6KTDj20mN4&ˆ%J:N$_hwkERNFK0l4%ZD=HȆBW *Q ÅHD h(ZƽGwY l/: r'0 $?Iu[~6֓&zs _Շ wYvCyBN"Z5 h %f-?)JUD+K䁸s5 ΛUa"bWHvG^?_1b`A"F Ya|2tI~Layn/؇Qۻ5ƍ/EJu0Hŕ;E9bSBǀayb`]nplJ7*sGsyxEw4'}B1t=ЏI?qAцIф$DXo?e0nl$m6^b9`thM TH4e Kn" HLB!H1Tːq6AS$q(D ְ(IhB! |kIIU) +'x7%rq*5",,Z03q%RL|4ԄM"D1"C#2KCnE#r )p&3s&Ꮉ$Tn\]CKH.0HEa >?ZwƯe eU"! T "| $B?3RE{I2PF@F>)58pY|./_ 0hD9X} @?KJ ̄a1ʼn=%Njc41e"" %vA 3kO"Yi *! S:]!mͱ1iM17TbNtqfP - DHAruO߱<(.y6 w5lnW ;tf$>j|U,4C,`җ{<n?4QF -NGPv*[??SnXCq[6SiiFe:D%9)~?$*?OXk7<%v#B~esQAN((=W9#:Ϳ Ԑ @^}d4<}aZVFV/҃P2H":o"KCAM$]0Pw_ÎfH-J$A!$NfO4EDk,""r։p5 BR$BSD BH  <6`Zwz?B833a'F%EJ21_Ǡ|bNA6DM@P`qMU *$)!X$ $H$&\ JF< {DԍS]lj^qc9ib6z:N=B, XQ-BEJ?SHE[[Ds VXFa:,O@ boA guRF4tϤ$ȱ%M*$@ۿr4aV8;0A($2+% $+9H6'.F/46 b@P>|TsAۑC'RD`~"%hx@=DS++*z/#RzMD F\ >M 0qOߖ Q#}8v,X0tƢG^\bKTe6pL)QC*zGLM9'S+-ش"8a3MGl_+iɿXH)HB0V$Jmp<^͹j QL 8G$P?3t]ӥ0K*%V薴|fBEPjڹZ n. ]`#& :v 6* ğz2xO"ϐ| /<.Țs*֡Fþ&"  鰯(tyk֮HieCpyGD Ճ[bƻd DEa |frYX^NIN"$( 5t r'Y=6PBZJc!1b FAD%sk  T?Ą,M3H2kDI?&V|4HL.%O; M?!D ԢCL}KadD\6n"m VM5ehǂ3?,}7%eHShF;e(⎳R-ZkYL "ӧY@d5޵*YX1A (A2QJI 3#JP*4"~_Pie*Jx*P  &1]m! 8쵭q1c6Γ(AI{:*?ktO6y[ma شův!R?x^Pw_ )}TOHFEln!ڈxEY`QAA)o^pXGe~B$i$Lq h҆ځ4щe+ȇќ\`/*BT$. i'C"߈ҟ&\(8MLh)Y88i^:FAHĠy@h:;*ʳGC2BњGZQʆ*Ⱏa%ߕ#TH.e+VM^./ܐPGX +$D;'z`b{)eO.ss=0*?z} zoiO{3_}d nQ'd 3`>s01$>,͡@?r&!49 P*}X+vex\hb Ch-]Dw{΄| ИK qlKb<=aa4 0%"(CrYN[Q@yDp]?N`fU K;aiY8Jt^J"'32q"B i(Z"Wb.M&23 4Xq[(J=?۬F{8K y$Lt 2QP$"U;XJ$MZO1UUY8`?}*NeH2"b'TtapWARwCdzKYZrund{l0o/ؓk"+y<@s/8/?>ѣ.#,­ja^vcdv;$-zF bbZN;vf:/7ݗxfczfTS0"w.EU3b!"Cgg:sn?s u16F 9"bݎD9$3 `D8sTR+IY[P={>=@"Ze+@fFhϮd_Y!tv j\ʹFC$LTI1 I00BDĒTD^ $̐$f*:$B`rlY |di|S x룂fzohObza4aUaA$U6bVHQ)W|e} pM8;mb_ thZ) ^lYpq9Q. NHqlv`o2SHIPPŷ{$}!JLlbP0漦+?@oX"Ü!H9w9^[pt5eE)+bX߭8!HClߠp31Hd&`aƴK̒)m+[XW.%CL<HIPl0 A#O$' N;? \D=}AӞ@}L<=Vs>0 $F "~yqc^,`UErZHB Aw M'nĉ'~4}wv2ge( A6f*[`YL `L@h(/c-JbEhkQ0gPcfk1Ո9ec9#6]7FcbPu#,Lea*b)ɁCb08HrEcBF2H!+|v9ͺ娣R62I ǙLj$""EeIY `AJI iYidRhje R*!ZU(@e&p)EKVG5 Cy<:M5@A'O䈌5&kGa=U?r;o0@v={8^HE1XWI$-rС$dhcȲBnZ# Pƫ1ClX%P PӬQ (#:M&r1rzHW`YM@s/I蔢B'DңBRl%2:h* J`"UGFHFFF3ѨX(f&H`TH:HeF&Ċb\ &t=H{y%xи$=p.吹 4匁Meܲu*8$() *Ozq`. k'B%@s74CHPId_i .b!< >+я0ATTrh0֬N`pbDL %>=Y~|ٵBGyh䍗`o9\rߊ("1I!O]ڹNyw6>Oܝ>6ѯCq0D̛.(aH0 0($X$(+)hJ[{C!ȲHg*3!+# *&* !1Xl!A` 1JLU1FD~9YbDB.88Q0"j@tk`%M01"J1 HkZ000uP$ WɃ$"bP j{1&f /d|Ԡ~f);3j |07%8Z=`>ӆ>X8G<}SUW(H`6a #ۣ.sF duqM~ J5x.-G*JX 1lYQg/ |s}ƨ-tQS HYx+(| ucݼ4>BD"%"= 'P6O^R]g4o3ˮl}c nf06j IEU :i3HV EHuSŭz1"w1 #cH<ď0 5)H H obblŤ8N2E ҃1ծ5[()%Q *Fx,#d(KR??_~%?_|_μ_~?ov@W_oyY/o?eeeB?|W[K.2o~'~B|z_пˮ֟?/7^?~%Z2%?ӗopcZ7_rڇ>6whCG%aK?ƀƌ0ң$$bMXbkBqN .6ĶGロ.}\]&I DH&6Սo!4%ZPcVa f,Zq"A8uDl5e]kn{X(sC0_ QAuz]_? _ɢCquwǩP'20bQ#X8, 4FfK1&2T a`1%c+`@j4\dC~R#@5EQwP *Mf3k2 „ִ# ZBr: %BHTU5RժLvGRT[JC:Z o}\ri#dA]# CzD#4|<`M`zCMM$PO| s (Q# W%dʝf˜ %p+?zL1gRAfRA‰"$"HB=qy$Mu!vs?Yp5 ٮJvi&t)Ņܼ3Ih$$QcYWRT<3:ˡIrΓt3R0xEņBAhOxShqfu'Ղû:/j/&&v3aRͧZ1z5h04dDE'b% ܯAf<%Bo4uK\ A\he]f%a|" $ŜQ3NZѠX&)gh$gxqN{#뗓|K"1B h07B*lwÅit8ї%`QQvF}68&zvtωeP^{H02\,XCH%\ ,id lhb qJŒ=S,LoDS$DnFc C8VFW"\zЮ3Ã-44W) wCDQQƒPse4ppp=ҡJ;rC5]XmtJ6Lqõf"hMDo BRz"Q7\d#2lM\mMkc. 3YS( ہHS&ǥk'cjE :-m$B1:MLqƋ *部eGtӹg;3)8+l :5Te,q ̄Q$1r.Bw 2CM[apE/@)|@oNA WH32d j+hf ta d [/Ê#4μ'zX OK86Kc &K‚#OJJB j(kCȆL~ !z)K9Tb[7 2F׬eQ`[CC d\A1@iTGMlt،#oo 6` M`H#e:őrJR!!:!bd8 X4;&-ՋB(&N МHFV)O d5zд@Q uY\611 iHPCOf0irFr+=wA *k\:26q")VtYmd;⋀0!`h^ZGm>fvta&m(#,dpXa#q%`$Je> NXE{\bFI6T0\13 .5&*(bMMSY^Zֶa* &=]s `؀Ba`U h >*mJSABR~5|$K7PF$JjAC$!t8z)})>o뵈\Q /8 HAGiEo~$ $@`b1LIAAA5LLQbFPE$RdA'e:H@'e rE/zaBJ0Nzc0'. `%׾'䔲&XU(YԥD &T@2# Z0W6J ack0]AXH_Z!_bA YH*vD s]u% $ܒDmJP4R9H1O|!@&);3ɷjb?B(qѤb #A,DM 4d=jRxJ">YU$S %uǸ .9Ƚ&&P>u)O`'LNl[B9j4$qV>v<_zl~EPhD\ [EIG:51,w̪U-nQ@>siJPPB P:w׽ɒ; RǬŝ~rH; tB!K^ȏM?kܝ7X!n![bGi CFyeF2A;/Ƚ I(G%YrL (=q)EQ!FSnga١ pBI|EE$BvkYTip>W|,Dڧۑ| ! PJ C :S3Kg$R{nT /R)13ʼ"B5Qꢉ#47j7ar#8H&֪lXmfm+ pև 1T4ҭT>%yNOG\[k5HڻYGo=rsQiKiFmɷ壜@n c#ѣ|^*JNȬ(A!?2RP'8A8p`b=NJ(&2Cd_3kFĹrEe> TK蔣 -m @iKA?sL<B&wHxNi]v s Clqں*䁂ңIP.*EHzur\!KO!,9)Q(}g)?tBk@[ `{+B] hb6 鼕g&-#9D?fe"KLAದ {$3wW}}uԄ6~cfSg |S\%TtD(N}||F9\B']pA]Ek>MXwىXr6yCLϔ;| XIU8bR bƹu2>}ou89{{1嫡G8cJ[@{|f}|x tu@za淏n[!m ؾcfHnWg ,prΐqZI㾉Y 5$1.t$4O9Σ2"Mnx<,X9Xr+h|y׍s(!v  k!# N7Hw,D&6c0;MxiDG& ,"hٽ۞5zS,]Hcyy8t!nQ:P9/fP%T^l-۷eqhZ 5I7x$.xư$0~Z(5؆y#f܃r xFIIcXwfY}8`\r saT^5 $$3,$IZʄԂ^&aR- ~% 0{ؕb6O%6_Q=;mU(-bBG)bA 6M54h7 [\a[sa0~F0lroL/Wt$wF{ţ{bW.V@ب4L2"Xܳ>Z nЌ/~l`92t a*IDra6\avzbYpՋf5岒Dە!:jjk-٤hBH8)whj=)A]@E"a$ͧe˒hΟh[)8f`I'z~g{hlL%k"+֊0P_2';Viႎ>Ϗ4[ wp? \;:xRj} `*F7yɻbO.< gn[K3x^n4"+fsE2\ڦVfOt,Z>sVRfwV3HLd:-7tg;V_ [lMkEM \o~zm_vB`Vz㗆ɇ OUR0,IpBQn/n:c%j._JLzFc-0KK& n |% M׏\UK|^nyxzl޺8bEt6geu\u3`ݱ58%)`fvJCę +Z&/mJ;7;#g5yiF|nAmö܋@"Qs.ͧ$;סRy@Psu*"kBx!i `MsS+3a/0?6qR켾! !펡,k5Fap B2sX"UT@hS)hLYQ _x`+zr[w'%] wgqMF 7a01)iٮu%S-6j~'J8 CvSzkB5wOβC#UQ55-ajv00gH!&EMww^Pmv!$<柝n9ÒLs@Fݹtyvc gs'hz[ƙwJ߶CFmҘ`̻Yޔ\R!Ӱ,YkM<;.^lÙmB1ƻ{8w! bz]]e O F" S~ٴ >`88fUo&4C2 O,q#|%g](򇝾|+oE޼!h`O`h#l-|5ߺhTGbq2 ͝A7%q*_]HI"4@U=zJø;Xu^GXzT߆u8 /Dqu,gN*8}#HpYnӸ.'`mz+D\F#Cb9rp3xRu!q[y.Yݨb,ڵZnƻg*wUێ̌:B lT[@zPr:e3a|@7"W4:噞zN|1.n_%$蘈5eٯYk^[<+톔ػ݆]f< 4?:L+ 5 ,uetLr4&([%(Ꜫu#*0R0PZj&EoT# cyDʴG:,l`ZHX$6606T}aAh~89bAxsc8[NY䫴:{'ei>I Hd&c GwSX#k0!IE7FW^o^"%'N Kx=|׏'-qW{B PsN ]<'iKBc6/E2b;8ypI^tDOtbwO aPa+W Z_LI.21% 4- -<;"*:4ʘSPgxbem!F kcNr>&:R .9fB1rq窃 5 """ $DV'xk]؜DA@l4BIb);۶bLXb33-46tV e-Ml@0[& $hB'TahoI!R0X8>Zx3M0 ̵xc w $e$3dI},0XFlHH'ghh:hx!be22*$1ځ#9Z92vȠ`|N}Ylp!bUameKII[9"GtLnbu Et-`5j-%5T h$B&ʚ r:(-"Ypϖdόú|gxCg6[VIRJɁ!6\.]{Âsk?&8]{~GqAHh!.y)5%M'tW~mKw9洑 ëv{ AЇI |q%- ȝ߷3Csfي4;[TjAUBM+6>MKjpEe.Xv";f L;t@0CO;hDt庚 4^`ɲp9n ᓈWpI,;ͱM'cgZDcGXz8y!G7Tak?ߞ'dV s1ѧ 3[9LO/v253 b-CfXe~IJb=P$ #b=ypG(!sk DA$g̗NI7[oѬ%f Cx00@\ :KDr( % & br&!g.Pkt FF9Pښ7^}-+e6GDB8Zqt7ԉG˗g vy .YN ɓaTԴu- f PhDk å&q-"F1$yG4}9tɲm#OFm:`BIPA`qNs+ƨ]PXmr6㙐}S^69AĸڣXf Zv:Tb & x !)D 3P^6󋢴h$J :׆7Ӧ 0t|.gm]lSiLq0]Y΍1RI+9he 6eqB Q0aT 7yBI:]7Fs:0FЛ).> x7*BXZnE6B͛\ÀxmQ<FK03#%mj;M3-tG QlQm '@vB:55U\a8@l۩sdp17ن 0b7ے"WUTETEDݎ;.r;`Xrgu&˲;p$/[!kA 3!aL3qd=m KSDhȰ"䉅TDOYݢ80aPxIF%Q@G 73S#QA- sfKDO+r)+4` BCR,ldy)X¨1 H>Y1 'Ĕ RCL*q)8X0Cdy54cpHt<v A3*I?!/WBakRcT PBTA~d[ƶL$7j KFukC)ýPZ1@3O~>P܄{ ή=n՘ek5؍145Jlۭ o7:3c`Qk)B}0GQ5D \`Yt&fE85"X@ 35) dd:RyCw~5!;70g\Eo)j|>~kW*X1/4Y̵G_ǸV '?.((E~j fq_"Ġ-3n{ctB L1 ~MahuΰaMxkј|*[ЬQ" jYȰ\-cjh 4Lz}$\IR@!Ӊ1E1.wwSx7֨jSNѵ޵v]i6]acVeuNEKTV$̒X!//ͺ%j\̵;n:S#hp?+f3ӗ<Nrуogt,,bY1SɫSj \{bl#xL`4@ -=2ő0h00[cTF]: fIHK %smRFqaF71㾢ekN^` 7% f-TXVMv4UD`>g.:Xgnơ'ʈWB[tM1/>D<=R2GӸ*=G9Oanq+$4eUܹۚi˥j}w6T/W_#FtuN|>2#v`opTI|P\ՠW[FJ 4 )h=]o4;7u OK@u9hH)SFNj3C;^6 -2AT[Xz27&zzQj:IhI8e~+]gzoQ98{R. oN4wwtGͩC#pPB|{XtJD1S 11d-td475Wc)KL8My'RqʃFl%kZǸΩC}lIӥ(y]aAȃ ^q_bȱFGҫ>$f?4|v~蛠3?u8Tg@+'@_ѹzznEn%.?f>@N);fvq=sGl6$-ly1]/QrFrmGzG^q6]oX[&_y4FiI#TpU:(*d 'd!S$i.`jLK59RCvɛV;uFS\pԱlE▸l± Y}ui1mדF/WE8:IJ> My=kswll^zMt{ijlŽqE.:M$4ɳŴ+AhF)4+)1mhz򹽎_z] }M|kiԵkPq?2/VPW`&Dd'Ue- {vweޏ}41*|eׄ,y\v@y/2%/_OFZ(i,{b&j<6o`3KypulWN\-tGEQY$Zlo@;εRt Ï-!IֈTtg[! ]LX|ϧzxw!`c[@{)qh$x̤𮟕 C__ A acyM-)- 'dqi+gܟ= <)f%<ri^@X38xLs7-_uW.{cEj$FlѴ] X^)a'jOtobrw4źO5DCgpJ&yeXvH(^Z< )Y)L.ݱp...b^`$YL#+,73 ɜ[CHbK%$xgLKŽqܥsToaAO @GL ¥ih6BDnu-Ԓ?`uEh:9?K !ɇhņ>kFκ=[C#OL>LNE_jq_;4ҫQYU|d>-)Ϸ;W%ξ'.z`gSx(wn{Ѥq+'*j>?㯝Ox>[ZC]-6vpNw5OKg)Fr"QSQwɭ箫ջMgp ~_ktYyU]q6ya8jĶUɊֿE,5`>B_7.W Yhz%N)}GkI\yxt 39hrdA$8W97rFdģ8,{JKp`ږ>tSdxRizc\E%YN`鑷[7l~g u7m0T* _S4hAcz+E %h5:Y/;u⢯|ZL

m1@Y+»<rϻjq}Af\sui54]RW.;38>!(cՇz_ɖu x?SΞkqb8-!*CJ*gWӡ ܤ a.ChE _[d"2{1lg(R|ahfw*lN, s*d!IsZ6_Q[8y&.Zm=IɁR㗶w;/J$~Fp-^q9Jhuqo\B#+w#FB̘jm %իfe.D}Z6>*.{J^f/GqpuȵK9DÚGLn훱_toܞf-o/òmu_p\_$ Ra,`ԅUQї^wZ,|Nl >ч\ 8Ck JY߼%[0.{cKKEppd*APҶ}ctBڙ|1[=X' yK}iW4˪OM\gL^ʿ0+*y풌څarvqyXCZM{?{yiREo_;?7~Hhp@n5U+"}Ǝ l4!`Ɲ`A9"]%h693؝y M%Cqږ!,O|G~yTvY"(q?kZ'N-1swY˾n+wteu!q@W=l]lTO)kyB)H{1(dS(/3=G./)7i@԰ DYEwϸ#]D#*):@`Ijvco4mnZwO2.+!%Z y=4 U 튍S ]FB}/28܇yMxxx8GcIG)0i^U*{D.):ST k"CĈb,"S !P8FJ&*TYY'ͭR%eΉ _e)ZA%EA#kD e!Zbp +@éo.2-D8"~6 !}Bg>$6жQ1BI+suMSgg…Fn=rVi+8M}I;oŮGi:?|88H؝@ōK\S5ը^& ˃22sX% ܖI(l\!LWsWT- xx@>fgh@D'nOe'@ÛFǟ`(:h?jX“yLOMZi@n{7Wٻ5W/dEYD:g[X:Tћ) {gFuB$Q :_66ª;5Q ,cƴÜ. I*`!6Q,'nv)9\[ѕYmąaR꫒xpuxmm_ʬz%17=j)O,gvy熪` Vg>tpN9<$Ca9ʓTحԆ?z K'e.;dhM u)k(mi&>,~Ę"irqd%Ovͧ?gĖTW 2|-4|>1R;Mg܊yI%;x*r^ޝjP%7E>T?8E3Zw b_ậT-2h%O9s蛤쨱i&cj!~~A2 k j $EEöa!Ae WIGaIK6^ bvOI2_2K;:|t:H X YB,ED7dz˫# 1pʒse 6y?ID O÷|E20pgaVuep@Ycɷy(OJEC$y_9tJh%c i'fkW5W[{Hor!/>3JƘHc<7--0yM3<=XRaI#J I.;oWłfnP oOFb_M7VBv}|oq5\T.k88jck30~vwEq^?G70KU^l>GvUv N//Pdt{XƲ,E |~x|)8'9{3X-A3uQOoQš7K.ӟE,}· x|,'OD}Y3iMPMNWd]}ڈq.Y졨࠶Ƿ^ŷ,Cjq?ȶ/D?SKv-!t.3~oD!Clyl9PSu"˭:p8 ?;+{{%jtYY_Af \`âJv, )/j&,cA բշkNy&oGڲMH3}Y7K1.%{2)R$6L=**vLYOsp4\ _RBXVb>5g826)e=oȘh]}%NuκhS6zio7 ig"욡,b [绚—%cm_S +7bbᆀ0TbmE2jS |eګ܊$xܿ=ǎ|LAOx.Xۜp:v* 0oZHM}֎:e`d$Z I'Eq9@ ? ȕvڥ"ui8JItYf O6K@_W̸!\]meFNK|DŵƐ>?OcMWn`fJdG2ui:[xP]S|F57\.#V~q=aD̥GK V|f3'ofV/=\L}9Q5Ʋ̘;Xk.V,4,|Wjy ZW35?>('{:ΔZ||V Z@$^A?k3Պ.h KkvûU@Myw _/1ψ腼 T[:Ċk{Tber2vv&n,5=gsVo#?ۊNUyZRD}#BeM I[93]~[]W%792vM"a_Dtbb#.13(*Rnw.wDKjꆽaq =ÒSiӚ@lW{]~8GZx7a=S/Opxso3M]vO9~i[t=$P]YR-Fv;9r* 3-|Ҩf(x"i:bT~q^y)pAZ$mϳ2;h[9i*Zm:{ID6q V aaw- ^Iy^ryC]gYcWe ʒaB1ކZE~rE`τX1dX NJ$^(]S T`oˏkx,{[t8y.[j>e c%9+i[M䞃h*%aQ2e)PvW1JڕDTOik`x`3GKC5̱65Qڵ:W|~~Iyԯ*ymȩ@LoS +I 2#`)iq 2VJ)LM[(6&,tr+**ܞ6a-i^TH޷9ٛ"D!^lJIf(ejy|TL7 igS$4ڢ. lLdX4{'?7o=|skR~x٪ +FlTaQC &gq{YU7=BUszV8 2t' a":^xAr(x;-.% 5ֆ/ЮPgM ) 4qzzU:˪ii`$JV#7(},+4Eډr`mLd:~ωRv,&Mp<8TF_;S^D՚[*H ؒMxE.V8E޲?PG ,OqBA^רu ~eʌ"m`\,}@pK!FU{|ʢb8TtϏO'$w+*{#Wg~9"e^oL974b%Lt!VDj*c<{' 6n$\ټZWL,T^(`Qy {˒:Q|yvZ‰!9n8zˆqLGҾ·"r8=j6쁔nOҥ}Z-`~譽6ɺȅ^xmiyzfv<|EIb>BÌJ5%'}%U @MfێQ6 V(«){j,euw>[OWTr\~ յki%9oм\e~5kRj TUBu@ ?2)z֥,ss:b Xi? Ndfhٽ'/QOL4>*+Y(ˌdrԮ6)UJaI%~eS0-QAi2 ;AM@i ˛8Ũ yY+K&ϭ5_Mԟ.G4; WN;qU8jf.tk?i(Xnn[WrnRgN@/I\I$5w߅%iލeGpaG&5KUU ^%hX^79x"#KS\Z"D'-v4GtrvGtt}&>zWpzv^ 'ˠ0ފAg@rčg^p; b :.t=BQ S܂O &cS}fQ//#;?X { xf2 DΣ)t Sff82 V7+`q( Q^DeZf:VU )EH\8X\A<4[Q1yI/BGc4=6| ueobId;Bix!Roevؚl#;j3N+߳A!We!e]&L C:42-SeI/x9zjdǮ/f#*S!B-ֹ:k@9sfe@_n3hϒP4+,YH+Д+Jtb%+!Y) >O:c[Hd6OrLݤWSXgۋC[Dq'+]uޭ/_y/_{S‹YVt b?0/V]hbyN`~uvLɞB@j+]QanTy* , u-RGjn=ϊw%Gh}> Յ1kdʍ`6wd֚p̑w N1. ·-L 5jdIʎ= hE正jw(KaơZ7/YwW0B(ýYZ)CkX~]RHC<.L*{8\MlO-U)pn㌝4דlv  vRl-g8s|A432(!iB,s(&39 ִf%xXbi6QfϠTCaD}$s#A2W: n:dq3bX; P:9#rd-ı?S$4mۓWNh+TxVfu )s }ƫ]>EP,ŎT̪@aph2;wը_YK/Y(a aJ8VӉ/iэ{v0P[E٧/}Ҭu~^WjGljKraذAg`MPJ>-մRvEbVN $.e|ؿIv?0ўKwr ÁβLUztpCxt5XUFXsUJA=̘'Pf n`OlJ])Rh|_)x,jɶ f*rD2B =M53y{x@]l`EqB5>w6Kgzyy*[YOm&Qgx;Ŷ\ 6@l:-fӸtܜ}y\T}}-"6)&OVK8>݂h¢}(@Z EヶMԅ_R©AU}ru 3Û\lˠehFI%LFOeX4%C*(~)/gp gB|9#dH$xW.0vwI(9RLgQܮ ́.1weDm6 aZ낺3ӽOј`N!@mSq3ψCy$xsFu׸}&$N.v<おn}A!=AnoI{==ug/ߥ @  5z+8ppZyԔ@S jו~5ϕ]ԁѳN4Q.Nk X0#S-y Fo8Cj,5E2Hl>|-ڔ˪CQa"$?g1m_QMmFx(u$*YS]Q@8qVSngjy7x9L_YnY]vpWvW毿˼ߜHd]p&Q7sgɰHrxp1(ԓE; 5=&~$/W{9by0m`Rӧlƙ\ض:6i?ehVxtjѲZɺ?"?Gmջ?b&[i'W@;bB˃l[l:?sF'S]jGJuXmr#Z^(8 X@^\pF;h@xm9W̡;/E|Tv'|Kâuz)'-NJz[PUr8Z"O=htƼۧYg@eƛwڛޯ#ԭxphVVI[i w`.oh*.]# $5In9P9e}03F?nPWGZbiC44+%w+SWa4${#C=R5[F\VE>f:t4>z@[#|MmMf C?O]f0 oKVn÷\n Ku/ͱPhFgȚPoMMaI+w{NӮaӪaʸ P h;i"j mvȖ}QVlj ct"9L6`/.t[I|oe{&zs:Ť.TɤI( INy8#G:r"A^,ւIk Jx%fꅩRV6arLMsCk3pȓ ۉz5g@(Py$>") y_oRf*9ڼvܱR'K욂5fF`DǃL8Ӽ/aT/Cnw=J뿴vԍ&;Ch5ĿsT8(ώ̻_m߳T8^l/Uܜ"\?tBQ_2qFi+7@NAV{AGNO!cGj^-pKPA٥3ɉ릝àGwj֗tbHZ̒:46s*-Nqňs5 ^ NAr)r(ITx3X ܕ<E; މ`4(gg(Ds Fhʋ-_\7]/ܐ7rYSx͚,xJKkՄ{ Pu?%c[Vh@h4i=A÷pҷ:cBv_~ N-GD+|tMv?䘧矁(_G#Ul4(bnx1^ 5Gr<=a"ۈnDNGͰb\Z/sm/[ۤ6֋q|BZeL8=4H_&puT&us*FG&"! fsR$ Ϻ7WQ|3\'1Q.`tA/9*lmL2P+́/ >*&>uڸ|\hu}yy>Ux9{:E'B\l߯Wf&yhHEh'o C$1m[~I{ ˁϽrSSkn 2H? L瑨3u RRCoS$͇Uv[ʀc&^Ʀ)<{0%I2O-/;-A[Њ\J|[v?Ҥ92"w@q]^_XeLtg+ +4q_$,h!f.KJshsI:,>#&n%Rj>we`N#59'ᬇ3/hi:ß(-A _N|,X!B!Hmu.ukl;iriNVU֢_7v)+bJ&#Fvxi GPRvΰ?{K[>-ݽ  KRCS[z^uP CKM>H} Y0C f }8a3WQ?6)"Wȿc{JUS{_|U;XJ[*Tb!@_9 :eTۂGܕb8DÜ_?'F *JI49!ach[Uj|sDrZgD# |s k@sӟD>1JrMEL+0wRxFDd2~NpJka}ultsVz*y[G}i%96o[&$TNx>?:7E~surj79KL|hYxCwCB j_-k?0Qn#D#sw4 F$E4Lk~fc1{?ngmdmkE:σ`r?!*z홎l+ùӇw@#s`ϥw/X ֤< d%G#Ny~p `>n鳥";xAw}pϴh^%gI pCMe50;*"EGܼ :gE՛H.XXw- . aqᵟ0zo.{y3|)%B%$bt*o"w- v%t9|ڠS8?H` ʧGŗs:9+ḁuo'p <63f$ k4ɻl\5{=&p5?oj Q{=-/kbLBl{)g/T wK\[,z: б;Zg(֥{KnC`*^<}̝#}+8MGk_'^b=ok(tun~džjLrxn@SfȺ?h&TԠGiy+?Gn{KOFcwLZŏFq.WQ ܝm#*hR@^c#Igz y%]P5G:u+:Np*̒ujt UǂC6|-CܓS6'_'j×BXad&ft, [v|Wr,O}4ɿ9SwGtds44d1FS.lwF#Ԉ+>Lp#*ٝ#Խ]/|uB~Ǔe! ŪxPe ~Lok2O~|M#8_t5Tk'x Pe#k-2ܽq!gGs5f"j.ll#HAJñKey`b^ |z fE{뻇%RY^da7I?Ͱ Cա^},܂Ԯ&}B̌3Ӄ;&υ&t }r.Col|r"aV@!I*޶u K,/4GSK^N3FSI>:D\ V?i37l(d.vGؼ[ٙVmlGdpcH/bNmc6,wdT%OMobC澎+Ǝv\ -V[W`O CHNh&1[jk1!;xaЦ=}=&p[3MP6*;vlM!Ԡ6"\y0oqaCզ~;c➎O qNbPKRwLƊ~鼕햓 W"aĭb&}mHt!HU)9' bOa\ϐ@ 22*(?C+\(y 3>ޫD2TU/|P:vewns8dygVWs[FX8)g|e_ ;rIl/ =+bZ&OǙ&Q~w?$Oa ^HmT,(콣nyIytrd\ntOS$NQjjV5m51m3<:DzmpŨe $ȡײ "|G+>_l|cCmݩ{!mq !?˱o\vcy:{q$NY6Q#R~eEr?Ĕ'^[=MӈK U& rj<@y˶!&(<Й=Oq1o\dj}-HΦ' C!@8Ώ;\x=bd;w!aV rTuƴ0`6F_[rb3ɽ:Fj 9geutDz2 H_ {_RBc1Wi]9Gt_w܎kCk d?#jBgD >sFL>1uّgxze4b$(K;]^ k YMhG(]Xf#LyFԄll5/ְ^e@b9?M4p;855ŀ-)w8=*9Dz Nt.̬ȡ3܅еt4d fo6Uxa/"y2Jti^ӃA=9欢U2ޑ?ؑif/SHDPryNXvPxg2򘐔|CöFMS=lwxj~Q~ln.-1sX^=crg"ы1Vٚ1]9͉S+?sGwʣ,!}+͋diE $noC²e=EÊr6cY~DN`z,mVS;5gB_~&#XOV^}8<ݭ@ ;2IeoķIqPC˴Ҧ ^pHQRvϽocWͥn%MbV/B[-e HbTg%K240(9^]Y̘9iD%8^:' X O=HKtm?\7ȫa2nnpag-_&(b6* Jd3v5j9Tl,:;@ /.B kfCɾlHW(1 ]GϘ?Ǣ6gHK A(^k?Ȳ)7 Lax.`jM7R˟~Xu0E׌PnO epٷ]ogSs7{ ~/W 81vlvvh[5dgG <X3`АaxWNUVH[&bbs[u1}/ˠkyY #m}9/pS^! ɂ{ղKق>h`g8ZwKs>'V?[O]{,Z’kN cxksU~мmr5ݟyuLYvt WKK 8#oL쏮Wj 89AUm:<}D)W{)r692{&F6#C%`!#I \6)ͺvF99z%0U{qI8PJ}txa+L$|$q׽$5ݶ|ǘ35eRvzM/n"Zu$w L {K]}g>Ӣ}mӅϡ@.B"TRA~BY[)7vq,ڸt(K}UpF<_pѥ b\]{Hz $Uo!eo&|ICy˯0ESߖՍ#cI>j#4oz{91{.iysUci5G\onSg`%m3'H-<q3o0u0540MT'AĬ_[qYWm AߩrP&ѴN6_!Xp_cf&ԘZt["B+L(X'OYuM֚Je؋c2%vo P%\{g"n.]9l`lp0.Ȓ!ҋ ڽ DgOac#Y6.(H A&paTi*66'‘ܗA  ْ}.+d˃2^ުגr40:A)]jdfFy~0XzA-iwݍe嶠H/KEaٰC e Buc +X 6uppc۶&~Iz6\P95P!LR7@ڂP3S afs@呐$"9tZ|{O/DlE^35r [7#Dv)j'w==x%`}VI |BKy/S$x7 H c; sI {:$-Ng^Np [l942 g)XbL bJ|]3:geH􈿕l`o>#i-(gMn)=&߭"g 2?ΨWoWX9.NqZDu &_N@=P6 ~FFjz1%~dYrrʀ|`ܻɌT[5Wxp|"\<؉rTn5Fi|)z1k#m>dy f RO-2zX΍`-8R3?0wGf;4h6p|-S~q| \$8bְ!Xk)Qx!9#S)k1AҀeu*HC|0&qibj3Tf0ZCncҔT6߮*/N8RpVn)JE%sݓ2H%ꋷrW+@9'OO &5X%UɡPl6 %d 3aL b>ݻg2Fo8"03aF4)AN^ 'nӎ> y;leJNz#=R'b"ʄz-89 ڥs}N cN4d7@kbDM9Ao$dAgaKyS>7M[ .ah9H$(u[sڗ#2'/OՋ[~N2ZKҷm6b:z~ސlb;%u-, C88oLlGX/wT%?Z[8 do sj_[fgYP.y|mH?Zks&&AvntXO8TKdd?1dk:%8{߁ 2]O%gQ|Mfm21T21&5^bXЂ DKTtzvnbTΫa^N7dZr[r/.5ng˼Nboϟ'1fx'8; @2iϏ/@'O;q:AhiE,(iu!*'òEZK8z8+ߧYQ| -DKe5y>md nDj5Ү3rosmn|KgqTۣhJ˽>LMW,.O§ۯ2U5UNhAX7qדB$\{;$ #*8>sZBEf{csbE&9Y iuxS&ЃieSZm$j&~=v2}hyhs۰$tL5(5PLJ^)Ų@F4?w5Ś#B'qH9 ;9ǽuO8HP9F-Z&Z؅p#Óܾ)uno]g!6+r>G#' T*!nQ6y1kzzvF+P%yFKBB5^}m^j>!dab*A[(Oߤoa= G'xEF97f?6dqum̸j4@nny鷳(uJH,*B> @eWJ\-ox2EiۇhQHx7 ޱt]-+<㤅L~DW1i/%44/%gSW# ̀~~!N}-C_˳ܪS`~>x):=҆qͲb/jAQ[4 9R_z%#?z\]w(3Kg/4PNkm2c ^p'^b\+mҕX0K zUr3Tٹ.5`n2ꫢKSk]k գ)PçCr6CCI; Ej-p}f[ar6`-lrW,V[u`JMW%2(__XA`kD ?oYͰ}Cpy+g g0JN?gh5e33 )jw?3Rs2A0bj1ȇz̸Yc2.p\G8RZ֖ngVyJve}k!?)2MͶ鼱t>Oz+P k#Z{wk N_3kr_iE JaF9SlBxc%{X? o?RGf_yɻ/+Xf0 p]Um?WZ D]Wz*Z-N+ڭ$ǘt'F- E jjkq~ܱxg w%ٚv9#ECB/gfV]RHWa+ /nTrsF@sh[@1ms~~ZVo}q|=S,T_1H A]? Zpl?Gl3/6rje"12b@yy*0؞<Mj 'e;~zkt&]{끒BMT'9uͼ)!hAxӒ"&/qrkpN~ [ZPdYOz7eF \Ý'JѮv6\G-H_GH+O 592Q௽&COպ]>+(#2Z2{}'઩wqʭZtvi cn]ҧ!!J;3{Y L%#%ZE6??6QU%Ve.`1>jI<{Z9MLc"!ʅ|߼F$ ^!Yi;C #NOdP٢N;rg7C@0-q]zfgǢ4 f5w:zCݥ+8+m'uՠ*tJ4xj o+.',КIDL݌^QA]vRwa5?j|uNܼ{x,4& D3@s[x`6״胳r}[c&֪$"m^7SUb&?sQurhk#=^|DŽGFYYיSd ލԫ?ޟzrc׽ 97فTԊYUfcP|Cyn -vIÒlV{Z%_xߤtDZz\B .@+fcL9M8$_zR/ac\U +؇Fxdhx)]OJu/[7ec_S@)؂n݊6tʒԌ}brOdV[ꫲ5#}Mtѧ-:"! n- :r񸧾(σ}9FKq޸ Wΐ_gJFݙpxxԒ Li[HSd Z:Mh@2h\vǜOyY^m L{ Q9GQك"Ո-؟GAF}H9h{fp%>{*6UC:)sKB>l`*aȨEI#^X0I}1-CC،d\#ǮnHP2#}h\rߥLX_Ou4 a_VwS.)~i%5ZaX /ܸ#1  o5&Sw8.wh5DЋ7l:vXPu}S1̓m>Z͓#[;*YDƣ)x=R,˸ĉ&;mؘW rECzAW@ >~O{q!5?08ǭDՐSnk\@bm^-[IcbRrռ̌,Ҝ _~4i4%'+!)ch57αtwv;w!N$"H;.\(t[\d #.\ecB3OQWjm46,WH"PoStīw<O4ObcN v_m-nHנi43a} I1rfh,r/3K<`{|S{$ WΦ5;-*A3WS;/<Z" #(y S8-FhbTIh7fx~lHyuL!a2 FMz?.5Pl( 2*n,J8Z£}#`cov r`iH:1H~͞~X<}eÜOUe`?OcFu?qZ/`/14Ƭ ]rCRr` #+ ̓2!Ru>hdF*| ((8u]5V΋g)tw;j)_WWNoJϋf:Zzt1yI-4O5Vlol&Ǒ/կV@"m9T@Y R9ʉaOk G7CJ UCңJG2QslhBwmT %U|gk& $܏mh]k+Kv)IX񒃘ƥzv ermZ=ق+QUBR&^ fՖ;(sRSoߩBODDH~TB̌6r $g?[=ųp&P;d ڿ ̜Z{\ H(;"jF:^uF?~^=NL`g 8˞ z.NFvɉr'i*!Bes#Md 0Yy34B⽷9 tshg>)~l7"QR=md:Fi[PG+xؐ:S*|3tWt|ڹe "1]#VZ-XWqp̫1Fcy/8cӏ&N53 6W #}SO,yY߷:2{74H|}srTyfc  ,jPc"kÍ1E>Bhc܇rB2-B9 SC-4@A3L-2C#TDU dU)kN)YMIOK*Hksbi0Sa J\" XE ͬ%J}&@ApvD`H&#;Ձ)==7`ũ=kR=N$38C/‚\0uV >a_ 5J^ ZXVb4k]"#W|#@dD6cè6$i.5k-k)Pn=^xфjJr 6L8$.l4ʆԘn!EfSe-$^}~68p2@6"(QS˦JPR Z{ԊAA P= 7NA}W(c.bڋnc8ü*s'X\dEI<{ *DeD=Ti5A h4mf4MæG-$$! 0lL#C0$Pa+u3fDV>~Rs+͉: gC!g/l$:MƔx .aXXuKMp"cM3oUь"]c-Ӷ^$ #[BYާ@  +P'W`2\Pt(DPEah 0Y7՞G33͢6%qAY&zOv?<S"Y $0>"!!OjG?_wp* |BS"H ~IpvD5Qi֦)c#@SaI|g2P0V% 7O/VW|=ͣFG&(h` b!k0Q(D7;51s")zbaF4=W:H%"Ž:thj*-a霜FH5D3:P ᪐a ^`0<~T`Cn2=z0Y=4PADl$ahV"ˬ# 2DmJ=W@ZQ1kCް{U3!"X4OFV381[ cAoR VUrFX`;r6̐s!M1C ILa#$rF4"zZ`F$R4CBY"G֩ Jbi遆dTvh9fURK&ͨCLPTjRTA$ Ɗ"؂ᆪ3 iR6dnagJrF; ,*mnVZCfD +: HHE?'0q(A/=5 q%U~bG O/ۦiƧ MybDaV%*@#Ɗq40dT!%QD+aRŲD"%"P(2%1`Tf0G1PBלLCr5t\,* $,: k|ʨdv{zIM53ЊQ$KC!ÃGv^~9?aR _a&u~R'hcYX+ 1Hf` LAy&1cDq(I2&,2*t 0L5?Y7p{fUH`"dÐROymK! bop_ "A=h~)+`Z@wpGxQZm)P+[3e3+3$,>b^Hh) 9AAyo㌄j#S }xz ASS1NZU"tWؓ^ɻRff6FCLDEvUrU[ YQY6Zv z98@NI|"}?28K&Fg?%>1c!w!㣿 z! L^RRB.^{A1i$X1))J`RPP8Mf6Xd\9ox8eqs``"1#CCf ֏ TCl]- H4̍(0`*Mbk=KRQ10k/IDl I#5 6)8RAXA:H!H}{.@&3YbR'a$ `!L XT,X"Q^"X*a" gnXT 8w[߇lVZ:2:UtDgad.rշȉWIvYAh0M42")*ܹ`PhI:]?dHD$bCBN?|-{ݛ^IQB@ޔ@!)d$HhPdHRLZfb~n.zPK.CCy(*~(2b&PVW(Ǧ,7O-P-k ?Gw)A"&"nGsͧ8Q=d JXWX`iT02zU 1f` "($&W%5 0+cI7ZD֝5enr24iuzA  4j^'"2$*YkҒEz.B:$J Eb  BHHBNəy8ס ]S$) BE4"+!(D(`Nd6M ,#JaDCF$^]H׻xp>-'(& rk՚Yc@D4צͶ ~<3EQA(rrăUЍ2C ()}6/q]S9 s`!3l, ;K$-|B٦¤H|<tQceo~NLk#zBcOlp/G_| ?W_ɢhx+"J$thAJHV1!ĢZQ]V1>1[kJ` FJR%dFEӪJG4aQSHD 1MfÎ@GA0e+If!<;;҈8茢;"HBڜvڈR EZ[#8<;2ʬ?}['-[͟_oOm?#k-4j7Fggt>/ۺ!"]󻉦O aW|c tΝ2㎶CĈ+HF3*T,mm/ZMX[VؙڐBWؐ82 d2?68EЄɞM"cZ.EtBIwYqw'cEu󉠈M\NPB+gB2:Ӟ5?dIRzn@z61.mbH2AF\i9g>~td eX- ?#Nvi>6kdalE6`m*09Uݘ:x8k˥_F|m;EYnGBl{X|K(0~Bak66ɷEOzN ph+=~Ӟn4LJ ׎#BHulA`-,^y xHcoczuZ~6M;W>z)ϲGѥ>^g3 |%'}A0r_ygeΥ E667HE ;l(X!.`5H(E6/y;+>;S7}vm-gu{îYLq#8uyXF wkro5& PQO|Qǭ ^On2iHDɖ)/oa޾'+I%&*fOfIAű6w0so2čόyb'}9I#iҍxro|-AɊb[|%"2zof뚣 ~r`tԮ Nn)A}#.q$&G=:9DvGI`U×vdW5,wMZ\pVs-6jc?rS׏|Tf9^-暂;CX zW DzzpΆn2k"zCUaÐAD $K3wXۼ9̨04 (:F7kwH% KÔ.cu&Yrtr&XL'ŌƋ5چ/c^ $($w֎C=?1/ރ^8LSڬ`;1fMvz<$\B% LD_{ayz6hŦ-2mw9P\`ĭț.wQv3 axDU16xBc#y8wMcm,IMJ>?X7WW-8=_ d4owz$xQ2/2w|cͭ0Y9Ǭj(#trCzc7h = b)t`b*؁91`6xLK=Kvb,;`dz"EP IY ٝu5#|Wڽec+cf7Uw/U\==|OQTˊ\kQS'i$9o5=)L3;;Y|`Dj Ed M]Q' ftQb b༸q|Y8@7lT,5Js"gTs# a&8̠I58LEB|}^[iz+V.J#٣ U#4b]F헝d 0GϡV0yOEq& ZzԚυ݋y}xC^p\TAS^¡gPӮ yivoxL0`"?j SC`?~WЙXq0" -^#s1ohIP-  OFĺ ac 2Cuy*.T58]nsg2PVc!-iax`*1 mx6U"C6_ys]F \ ۍ?Y}߃W-;ӯ=1_}a]=K%9yXDǯ%^ `o}%Ovi«ndc^6Wso/;o.plS;l6֌3sHpGyvtg%ŦީJUw9eatO?<ԕP_T'SÅud`ۡBHC8bYfy֊vm@аOTaz@2ȁd>.3zwtN6188rvr0\4 e[47XlrfuQUUU#R`L ٖwop$rl їK\Dc}_ #ffYMPxBHE7g&/q |(9)غX>M5E㺜zUש}?Tz8L<\qb`h4^_iVJ[L@ʋLöBtFL3$!&}q16#挋Ipu 1t/Y*5]`d-Y'8iYFK{F=&,s&,I0a0;e5Q8 yDZއCpN BFp>n3i&Q5 ̋3wddfDZ. BSŒx3oj6!H9`0av7AWZhfu. ט,؅١#D 4eHGhltPzSꁞ$7ÝCUt j2<PJ 0$^)(0fDb&d\G&Nz{/;}椼Ls@Mg}A!xjSJى0M$,?wx'EӸ9_z$dR8$9b$#Š֓pMxxzV^}6{".Zts6r}[$#5;!GpHa+>źHk2%I/K:ukQ 43V4pM>oq֪."Rh\ 1'\hfP cn JɱTs3]Ngj)ըS"Ctܡ'Z,F}ԭ/ `Yۀ_b8q1VIF{u0FȠ0R$js ߬4`c hݺ=BCKA>#2<&-'ٕSaxƩ9֨;ytnq(cρ0@FAg=83ڻTDG'Wxq& "HPi@ SKx%7N2S58HԹf!3$Ι)8"0<98G1H+C\̉ 2%^tj 0[sf-x{%ڏ!n|SU'2]!\xXO I+ѫKkgz5;CPz5ON:tR!{:o ԣ! p̃F y#iHG mYܬ!&ӵƂŲ"%ʧbP" gH$e덚%is'٘GQ GEB MZ------;UTIvbTM4L&&I "*Ju3$ko OAz #]PDZH:aBD/]1oW`wE4S {J1Mq^FqO>Xza< N7SHȦD C Óu/i˜!p6)[r- (`)8։#o{A,)HWlԉ(qqm; CF* iH%o A$5q6'8DR%TD D98З H&u Hш|0 h P U(P1\Cy'p y2A)MBGlr\=ؒt=Jda S4D BdCa F"Jd^^;rw kBϥ@΅JauF4nz HQccmI V0PPM5+ljWؖ\wU 4 = in?xE} Q^{5aE%yJ.pXQ: G+8Wɐ$&F>8{[N6;5a!"AB+&7Ț0R@! `L`@ ܧ*K ) ypȝҜh?ȕ6 E;'y WS7zx!2c`>m . a!a+#mBmUUUUUUUUUe7$aRQh|F#왪8dI &0%p…c$ s v #` PXhB*s-]׉`&)H)"aJ"/ 8:c5Zࡖ䝝5!fJf+! X~غ-t>8CC(dKpV@OfF8(m*,_LrhTxA<؁ߋKP%|RTyHTеȏqOFCD1IAC@h!.˻iլf qPڈЪ/3r0PE8$A+LO4Q/\h51K9fVivFB @&UDxLL'8s8wN5{jė"xY?b` ѯlX oIm{cB 7EDv 7e=gA_To?=C!آ$*sy`sT pm_ЉTpNpYu5p5Oe3|icV҂2à)ګSRc,`0;ѷDqsdz98\̢à5~V3lML&f^-E+ݦL9Rgg#,J}qL]мtP8Ġ5w_ 4tǏާ:g߾)t) O!Ñ,]Iw&.%%K6(MԴ@PHKL'lG!lO$a \Ë[4s EY8pIzN`$H8oY61S{HrbgIs30A.rl+4Ďm\Ahy>BȚ ۦʕDz84cCl;CJO2P3jrR`:3^hS 3p67I- f<M@+d*-$!-X,19) !88n\p3t܏pFYjrJO6ߴ&Z{Ej9R%uCAeܛ k1P1$!<]Fqk-LX$I0\rXtnOH9myf!x 3v;XT eg6šl':b$]R17SaTbm`SX[+F.SCe0зÍjp\iRkcLeqc2IiI2IHI!AmI:ě 6C';+b ')3W"U!7o^h8@}]9+zMaٛi%0w=Ɋg7jNUwf<8)a-5}U2.Q0be"LJU5eg3M훸7$0C3OʣChߥ$C^Evp LtRp}|K3&l(Nkg$ ٠6CAڙg>5beYN sqp ÌJ WG:]Qsq lL [n9HJ/J6p,Tv)1`$hTuB"{ItG _Ofk<ȘTD!EX/& ;q?*BQ[]"G8RQLȃV_&2tstvQ[$&MhCFNc;K|,imb!MSzBV.f\f34a;7pÖ f8DUDMGvl$RvlNt[8td$kP8$ ցp5Ρ]R4}MLUZ *}g~ 63]C`mgy^Eg2d43BЌ94Aʥ< i0^7(ҍz>bl1i'5 UcP^AڲjO#Ϊ6xqoJUwtL2l(HL-93)BŒ/`^(D;b\63007{"dž ?T)<(\8d nŲN5!ck @=rԆN|&[:l6rOLR;wPVdHS*Pl&Φt6+Q3>2 ;pXTà10!ہ^"2;8ӗRKCh3:3%T9 ?+ݴ,a,Bg$njo|N$C6 *)(Bc|,%눽T-6LjC nBE,`\٦;u9b4ɾDe^xǢ1N-gqc҄-O6C)INǴoqMQOg7=ؘ'i)=C3Q8"h rT$AAn%ۘOq]DwVpdV"4+!p1 ؎60 0'H1 $ qr4Mi Y((N voJư,OFp 2o04RD4,|`fsc a&3H ĵL\d#18i|0a UNTPq;Ƴ9C4mj}Ն1 d`L.~8hx79]TZQVF,ofe7juVw1-LTS9El4@'j cⶖ!j%G [Wix&@̓CjĴaH97[6/T57`B 4&IizCXYԋij$40!ǩ p~h:b f$qce^_X?{ֺ ]<║&n@aCXQ}jFhm\r_NQ@10=ߔKT,6ێkxK:p4}RF1FfQ 7jE(rCʻ!{"֨"GƦJ V0l$q3 dyFCN/^i7}۬6 kJ.!q3;Q2=Q/nr&901c3!fLa00a_Nd%b67nY|pxMw4$I̱FHH Rwf ŊE+TsRT8щ`g 9)ͼO11`1 = ѧD<\ӘHUV!bP{y@HT/tjѶCc]i$ yWqa"NaJV1C51$4ز+ 4@+5oJU&5"1Gu%Y&HhW3<+!E*H+M{ ON3U+h|D^-nccm}+[d%aAcc0V4GH !pJWDTV37yX(Q6GcX.X[h,6O 5qm[ơJ {UT( `S\yסּvR>k Q "1XdF C4+l##+Jnp6HCkSHk˫uY!AJhm@oIUzzvC{4ֱ$A#0Q;RA8 "u$$1 r`r " t@J, Jr1̖ǫ.x96 Ce7eSc֌l.K$Au = %8L!( 0X(60R#p {&0% ]MR2RX Qƒ8) F&T l"aq1AaJ'B qhTw %Nm:`dx-̂[8Jr0hN Bq큡 $4si9kDCmq8:`&*;&au b(gM Hbb(q J  q!: (*J2YcEH$嫧"yYXh|m^*rA{ raC}OM~2Nο3ESA̠>Hr G3n^íK"2ŝ}a\x!RMUPD1]Q Т!JwܫvP_l&@CM j PP\RVAB&ip='mdv/`r *a d @*4Dn" &MS+(PXguNёQf\(ބ K=5Ͷ8LGLwuTFwN$kQp9`#$Ѩ(S=D1SZKAAD;s?7>^䏻'K./ד##}fAvQn.ZЖԨ8'd 4e $&re Zgr!nί 1xB2e%m%ZO.M6P-YJ_H- ҳoresRrDcn ô@vN9ANjy80;ݘlPC_"g2m~CY0CCCWn~c'74)v_,pkYĽt=9a$ʰ}yVlCQgu$XmQiv_iŵ''z|t(+ ;}7  up < Jr^ZAQP||q7.ߥH3s1arQ;a-DNEU$&kP0J20wNnY$]i ypt$Kj>cDpw8G/a%ʜeZ򩛜nBʷf99o N&v_k  6r!5Koor>qizbwEuJCH rx>n0hTqju2rU.lmr$E?`&%Ec>uz;:<<kM7itg:^fL;`K5g 6f[[$M2"X~h \pV9J5c{ΈSN{Kƍ3ԛʖnf!џը[.CGU# sDzՄsRؖ iavzA#BέU1`2oYaUۙg"L@8aOKA/o>0O|Ӂ:V0סUDS89~}y:(v,=6Bznaيmu#C.7MS2Q9f|Fb@Z˺ze(FJQJЭ *FR}?B(<o7qv=xkk73: 9RQtg1っ?djq((%y Tʹ% c%32d(Űc6Z(Y#50œDjsO1AHH5c^=3\C{30uw i8LRĮB \v`yX2TH݂O j-ZuU m1C-F,\X<KϔWM#;~95IN{<&)<qt޻걈9&D!j-lG`wtHۗKPu6N.ѵwiEoDbSLYt>8kW%'uk;m䃞H eDQbVI/vfDvM|v\> (0wym:ɬz i&+gXNݓL~ߛ\Tɨ,+$FQ]f~_ sqX y"~Pijz:%O#4$4Z]&-WX#j6[c.\0tgɍN]eKʏ.HVV,ӢFХfT 0yK߽^M !5 [\r@][GoXk4绛f0^:Ju.YriODs=7H9ZIk S1DC:92 &<n 9s1!J)`֪5oiH?f}~G˺_x%v0p F!oviT|'5OV뙇pn蛒U`OBw2`~fZY'c8:8KnI% Et_C㧉)'&PHd%_7Xntd8E==8&;"yYS.V-Ks GY7o){sdPϜ/w+q!_Z2>c @^!ߋ{8q%s$r+^ Eh|-QoڱDQ2~ddqTբ(J9 X '!xS;n#b81v#G͝7f*+S2ɂ)sfru-TD? ԡ%CΘ6q[XD.ZUVQ bH19?ŝ.lu?"'Ǻ7,>2n%_ri nH(gVSݩM9^0gܕфA'@U[żY3v rηT#h?DSSۋA/j)y?~\k*{걆E>6aNB!P 3y&7c"#@5 ulK.-ϵr:M+vf- Пn/>}!Fn ~9itI^|+]_``1Cܵ{e`: WrGGCRIm4~\Jx4vl6IGy \J12:F g&wV̓O QÖ{\TjZJq˹ g]P%+pY/D:cX@0 ?{w'\4Mɫ',<%$cq_-kuwbx ekr+ngpgcW&Cm;,hV."Q=W\vYF ++9B?і0hp;ƅݜWf #dIפHBhfp  7) Ĩ9f 7սZ+ܤFTSMR@؆ ~CmA8fF7o;r)STxWp,# 9%WCu:*L).}4oLlc]xQiLP7";}Zs }gNPqi^/]k^fORsڸ _6|:sz~Pm8S~mcEjߏ^F\&+ٍr":+ؖE,]Y8sb^9W)MWpnNmsŊ)r3k3EHlH1 !!)51 ${px{C~Q ?%$Kկ?}Y hYii'yJ~iÏ˒I )BQuk -7!~u`gv==)Zt)/4'vV}Oؾ<+h1QM3v'Ӯ{{]7Ψ -Z0-><ωdL>CcOYPl'vnm@X+CO{뇶ڑPjlrɱ6uG.Fg 5'yQD*\FkE9 /O @ 9(\ Y?Qw,')4 ym|p~51%5 Бy09ʫfh.:y]dE|h5sxxCo~U[񱱃j <_X U|ֈ#p.;ÍXuTs͸v19|sV:] dfT%lG57\, R3=uszA >pà -N+>d#iJrpBcY_UU]8eQe!63z`]R$ !AmV~KspM,КqzH(P1j\Y%cnt<_sA8pZ?q2쫨[(~]57[pӲ yz㭻‘,)Vu$M3`"Eli @OO>ѥ՘{ ;QOub%H&F};wf> /ft^M?JBSp] !d1E]MzQ% m  m);,62ot>w] /d&aje@ [,;/g/H-`|;)(/XS(*vxtdE׵Q4UD9VSK ."O rCnCɲ`pj8ɤc72sXRA}!63w "7xĕzXhǨW]P&~Z~ r@* %nS&N 5u+'U BT-/nnfդ֢RI-BY@f7Xɴ HY}`1MGۑ. !QZN"!Z2\9{ـ@pC \E~y`vr w{YB{<%M":qL.5x>NGDrzR"(u]cWQi=dBjx׮8~UؖGL:l49`TҰnsA.@yS%Z%| 5I}| ?'h=R^>mj* (@GmqRE4&w?>ؑ6iSz06/=jtV23%VG ?}麠5l,s=D='hÐ(ƺVTbx[sGya=e V ,w^J(ANU^Za)sŔZ|g'[`<=q q]ݝ Wlr|_Ы27o~; ? h%w{H$O֯%V4,n#MPwHZ˳xO`l_#72De~8I)A\搄'x.0jNȿM,! M0=l壊hi8HJz@ZHe< A&l%ǀ ܫZr>B>Wh'=Uz&b?﷧ zs} Vpf0Ɲ5F"Y4iRw#BrQe|)4u93~5us洵a懣_KwlhA~"."nh9O< u,:5@o p8zX&䤦%|o\Q)6F.3Fuj~]|!EKN26O4iY-u`͎seÖu^EF 9F*;Q=p/8c#لؘ?f hwMf{?8U/-Z+m|Fn'~|_Wgyii鈷"Ӧ`V&n ,jRU5eg'ɤX |Rlw#,p6s*~*$WfKXXTRLX]LRmDǯ^kBVD1 Rs>fiijZ]d:Bt ?nw?Z% qS;M!)5@.%=8Id)PwqI$"^ͧaVo|O:w4yM^G|?Svp8)~et͆h6(HV ;}տw~ߟmNÃoVW5G/:P@|^~ǻp?B3Jn5-n֌Vo{@?Ґ MUuDQ^D ~m?5\Ѭ 8[zvԶ~ |h; ,wŧ*2of}IH绠 6]5,ha *G7i-vJAy'4oai)-b"4tS||n=MJqulT4amMk'fm\32_*ɏ'ui`m G Zi q\ձ)apد5ƦoXʟO;[,!S݀P N4( l3Z={Bm~6y}pUtS Q|fPxX-^>PLcx޾. /,<mBLYuuWU;gg^Lr{o=,\[ZZ?C['|Fh-h h#tѺeYg;ZYaa֤Ҳ[=郰<Օ9òSc~ ճ kgyLaw4~?y~pD&Ot,Q*#̖OJ{K!\\9ٜ#P:r͚QpN3 nof/?L)tQU(=iwldMN%~$52o oT8XחgX~zծO#vsD0q_mI1XiG`ҿ{%hr?9ў*M/rW[c$p }ڏ/Ϳ/(o\ h9osP>ٹ q cV'*X*)mezxI:~ĄB%juIBesgX3AVe;e+^?A–!KanOά9vJWWK7pEiI4Z:#oyC7.[bDJo hqiBmA~ۋ2#i8h$#sP(P u%Ne:ڠ7YROHM-Z߅<0$97q{|Xt͝ {w%A [(+C1Ré'Ckfw9Wb-NQ7(W[˽`ejXЋzcLqmK5 x)ࡣ{ fjtyH8}̱Q/K8z<*?]N֢VS2"az\1ÛԸظ{?v#3JTm~ U,NQtjTEx:QJ22Ӵ%muHəFjIz(J+]Z@jp'(Qo4Z%!Tr-:綢EM֖Ԕp*zr XꥢkLCIR8AD'l.}6Lѩ[XM*$X7(gJe{K$*裥=X@W[K) Kp ђm."qF +9AZ4 CD3@6o!h V6+kX' {ow~7>d_lm;JY|{mN6(E }*`<<*e_+;rF![1 Ėu8&~O?~J =ɶpyU䮬C;]K}bMe7aD7ױnzmeݕ\mL̦5O_) ?MV =GWPg:Cʹ 7n>՛欀 ai6I YB%-K>a`z^$I$A Tf<>5KM*DBkbx_XJj zT?jTho=F)k=ѧ6&<ɇg8RhE̛=!g)$c/J/w"~CPȍN:]"BJU+N !RU|>*NLSjҎ_ m9t tkj oiwR<'qA=P0CA^V:RAcv RQ jve>&O.41&8"x]{YɅϐњ'+oK:N=𠓰%rz]Tf f++E71Zn\^mzV'J=ijN{1jG3=a`ńb}^ȾҀV 5dLpAOOEbS/gα:.0 3xU:-o%9dNGp0(w|l ø+D7YAeUe6{g.ܨ}F@l7 2htCcL1/÷!13t_}L_+VV|fQ"ϵ)*:qr ߓ@`|8D4Y+jzlXʚ׵0/1N8lUg׆j&MA̺3O;ҏO|m$ /q71;CRyj=_(ݝU,q p!ID7fɒ f)_3 m[;ǘ-.n[Jg%saMoJn1>?iVР&n%=.<$`U T~ ^GKyܚ1㯓CQ b{_a/0~lmK-Iە+ѭ3j/9ϯbg:;SUEȿ]`ݝS]Ri~7INly@}OՏJE[;5F[5i3vˀ E/ݜ;V%$&m[ 4 k"vXmOJ6+Dni?zY K69]#AERx;N)&dըQm&Cݲ78=YP-6HWW*K*tI!Ps?~D/1xx8Kxıhl/FbP|+7͵|T)47\?6zeGFpkl +7ϥ5 HQ8ҩ-V0TY?~`x/;.қKSTJm zuǡNH]q8~J~XPv=]@% Y;&װT xxi-Ҷ*owhUpSGa*V{Ѷ&c/|Ewd|yAG @w|; 2E-Fc&\h%1'~J_][5\W~]yu6+DxBa>5 Gg]LJ3#?sOcHDY\tOIrC?lđ1ac@P=0R"$Wӹn.FK} i4k8ʊbD9Q֧ 5)M}n+*!Ih{o}}o^.D׵DSܥt4Dߏ8pb:U]3T~96A%?,XaYDMJܦuܺSr@)KKAn ]bXc5τFJd&j,iXHlra)Cp7]cU˾IU5fv DlQ<%SԔ#V1?^Mn̫wT%citu6)&\ɔZ}^k|05Wݔj00ypdiCR%2.\]o^.Z30,ځ!0[Q/r,4Z[I2dlS|[\Y_}icɫPBE齗{st=1i2m~M-I%*D 9X[$ V:es3"Q->ɭѰ-6ҮLC#J4s&@!U!w|$ scEY3@d nPpa@ѦGьI@hB,KǺꯗ7!F.:8AuQ ARI!5g:65Ɇ4-"A1۳ KWd"JJXj "ҔHؙFJmc2k++G\͙FR_K4EdDh(;Q [svS7xh$f.f; W׬''~U W|}gwq ہ4SDj2)&X T+ٻyoUԷ.cRh[)be']ޥʺ/4d یҜG1YH?(#4ļ`uʌjƍծ챱خH77S|ZU|WWٱ$2^W-zc+%uØfG;5tHurڙHdaMiK%&2Kd12hdKA\LR$160ճNAcpY`K(,Vߴ!y}<A5l`yXk.ҭTߊemMS_tÜco9/u&Nwm`aEE$EEu 'fڹ`l,)Ӵ{]wf!XccY|Ҥ%!bWJ6JfbL]K W}1IF /^kwYF֨ԉQi_oj UchͮUʒ M1!&o^u\4[;}pdrsRoA1))GPq}#AqSHd-TPqa HC}X+uɬl(XVj)\6|r׫޼ج[Fgui^]zu}9yevkyo;ƙ5Ě.Γ@[ ;0Lpsz:S Vh[QlQlmQQՊ(-QVmٛjHJPCp E4+J2ٛjɊ#hX#TkjcUFH A4GhvHjb R5merh 7y"(N5|9CC`kXK2 !|xTi&% i Mhh)IQC&PT(2Li#34ꮚd$3 lf@%$lj}+u>^3.ri2@jl-VpZm(kĚQ d-&f̩hf‰ 7ɍM]s2EA(v!cH,FD"Hy͍rfB$ Z X-ɚ{Փ,iR&qJeDhhMR،RRPRdhْ&B줒E14̑BHf@!Bm6f2LK&5rH-$,`g+S4(bɋen&4( #*$ԙf&jm"f05ݺ Vh(%3(3ш4%k2 LDS!0Jw& XCmHI[&Wm ,ݸAڈdN3.D (KI=_IR[!$$vhOHdWRCSCdkqB0Cm׀p*8j䴇$Ŋ✸ J>]*?,zc̼n{ֻIAX\|y里z0\f޸=v7XcD!% [뗽uUݖQjpC?s?nMm)"WWk @\> ya2aF9>]\)ڀőn ˉfǹa;IFy ӽK9lwZd5xmnr5;4&ݞ~d8N3> *cIWpڃ=|.yaI Jo.ۊ~wĄ_ᣠVB0ğ6'mʲ;1 ! Q^Пsu'- 0xc-)JЍ+JdEH4R@dJ`Bҳ K@J'gP%J01K9(-PpFyK_l~atLf$=|zXElQvC35 i^3(S @dr E:~Jo̾% }CyNZk 6HP^S5}o؞xSc@BB)AKsϏwg/4=' * ! 0!. -x;e82#atD*RR@!MBJR_1E)hUht4^XHJokLmP9&HG˞*V5$RZ"&ci @P7`6Qʠ ށvѭ;3C'.un&-l1)"`#:BH~ For ։ݐR/ǷɏY̐9&&P "d1<B6.giXSEtInCުi'D>4$M@XPv~44$tηA9f3CM"N_Dzxo^ V zCOb}ׇ xau!ay(,s~_z~]ʽ.Gߕ]D4\;LGiK6$#\M'o^#F@4B;YIS,3WaPWwĪ'uF9X[a[8 5\I& \moȬIQ+ F w';Cɗ_nQ<[|Y@A VRp#n킂GV{M$>TEDD>;v^Wxi[?~?zdqO0?a$â3O[HHb (0 TO$ ӚQUU&}+_;>u>~J 8 #iMH񏯦n2b!W[g{4 *y]40ce skjC050L 61bw `H?j%7 _pL_Go K|,IttFƍI6x8Tw?hE0ŅևP*"1sYoZ(!&92!7LZW'CA[v0%&d7$ B~h^do`]4}L$&1 U{ٖ`hJ{jX4|PII$jpfg8/WO~dcatp~{e";v@U\JDexSM.(=thu)2b&vƪ1]bۊ }6k[43|‡ceP{L*"tI z7"8̝%}PPGe+82+Wx-v+%'d.!; 1 hFXiYeB؞|I;c3fwSf1 Mo1d(Zch0@.]k6r{n=/FLXpoҼ$( Ȯ깤՛V8 5~!&aqjO}(ϏJ uP({϶o=(p\&%'Lj#_č[2z:|wzo Ėά(+[*Rt8y7HSڔK |uQ/h2Cf'ΎLO딉ɥd_|b&ewB_Dak\Ҩ[c<eXº684P/+㟿Jf}snݟǤ}~P% fѭUi,bVZbԚƭIeJ@@^S}hkdn|_=҂VX;?0"@<~1~ i+A`u X[$>Ӄ^RЇ ;.]*TJS,%V&=ZQ V̙ol3I:l_~_6ۨ&cۆ}ZEEa}!O(xQ9&@;: dПN9π <F!D2THt0BO>[Pc1`CBM>58{N Da<`!>_^$ >!WӞpǩ_RDnaһ_Gb}W/S2j)M%M1Aas>^{tw~}G>5bxvSHM650^6 ʊm4BQTL~TzʿX2+L gz$!dwW&35>\rzח٬A?>vDD.2G[3ʤ?g~Dayt"qŴciKd?[ُ (͑aU({ȼ<ĚnkOѓ 0LW~4|: 081|G7{: co !&)7+ǹ).ƱYF ɑkZbǚͺڱ3۽sQNroW75d&`Cޙ=ƴ_dYCQ?C~!mGPJW%Ēc,Zq넒x« V)d"r5ee tdB DbTi`*F0#C Qfɤ7(&<]qM)ێZTtJ |A nIsAϚ$bsҦuF<iig6#ccFhxWҐpFt7wT!&4Q`{!r!|/Νb22b$8z-yUU S?5΍n{u@x. O}75m?4b_m};ZȗAyC'/2 k:.¯)3#`#t÷0jC\`EU@;5?kPhɞԴěQ(9vi#@2LAk#6uHb2BR",Qwde0v>KKEltZ0s0g9lN:G9{\'5ץ޺I@ө*kt v~(D0x,߫cwA1ƞibF*Bȶ>tN ] fhH&w@(Z@t$(?2H9EBPFMNGK7LQɦRT-DiTX1bJ$!:|Y6bv͙00f*y4K Щ^jMCi@!͂U'7]~})BsERx@YrbLҍ%6H܃Vm%ٽ%^,;m/ =7*dʋ;{B$֮?BS Lk2 w <UAջUoGåU^ [CM>[&S# |LEͱ{NU#yNvye)#_ !̧t54rڣ7ΫvlmnU+.l)X7ԏ itgD؊i}P@ &`B2hDsBkz4Zl"Rvu,Ae쉊L*"IfڮsPh< rհ  Jm͘u Ъ'j5-Dԉ),0ufȰ#eA[в|B ڼ <K .]ۓvi&4Ror-F8u\LaΏu5"<*!@}1¨}9-n~o]r <U+\6b x8M/DF|qƶ#-[ŤDG< a4$AsdG.nMk |Kc[&>aHڸxHK{KjѦ#Qm TJ kj-WW&½%2q譍+Q@۞Vn3;zԛXʌ40lR40K4٦#OIܧuLg=ѥNlk;=^7$R{2{w<*b"7 ]F俵ߏ_YgZT&t!D&!Zf m0 am8`dװ`P6b5&-QjHCC瞊˴ a8AbAڧ=BUsZ]Y]a\rƏx-fl"%{ЊtCI4+`ZRrtɇDFV j~KN:8΅;x_|Po>y5FKZP-fDݘpLa|#8 iU*vY']rC#iwZYz*?X햺IP%dg8Ix$00eC_A6#e e97n$%_8#ڧ,(CoS>pAXDôOE?[W?z۪FZ!6R!2/K+}Le[E{M {)tx<@ops\<VmUX޻MJU =|K wp#pCnEn3PrLᖅt AJiI;Ju8O!=Яz ꌏ#'tx 7QTARFZe-y $%07>r#u4'{.LD464p1)B_; %M^iBie!A  qaMp@X!ÆL0DA)HR ~L |m0/sDbF iKP5I=l5% D ߴ!Lޛؓv?_GJ?8>ȣ2]/ûjtԁ4d=ss?$rS_JEefX-TB``!/1AO13i|"IDD-ApViؾ۠v~3B +hc\~^Skƻ-syw ۸lyv;Xk筋pNQ BI)0/sk2ևp`HQ3BqPTYLqO%˅H=WC8zv[\p^r,(.5S\Jx:ݩz?ϳW&4\ǯ g4,ǶU=Z!+?RA> ;Z*mMTul--BB D}Qs.D‹[dğ%ͱ} ;wl&rCII_Sx|@&G0p"X%s5_>98^8VN.ҙ _^ʠܧ' T;ZU7HCbMmĐ9کῪB?Y\qPn1-ڔJ Ry$ͯ*kpTOd^e\)-A0*܁ Bv632:+?s˻+*bk%uU3,9/SDܽ-rb~xTI aDŽKR+kEuُ"=ŬġnWIyDyf(:"k0`%Sݶ+sFmFS@D_CҋKDqU"(-V`8lXiKw׾GFm\,}|7VqX<.97CT\R*P1wd\!J?Q zאKUfp_2?]UOJ[`)y@$G|;vuO-8;04_; W0m7b-5K f֑v93y+Ra12ZMe{_aQ B̒TPH`ce<}7cl /) I?%q,!}ctBR!1bl1';y~$/BSKD,copKS F]vwno .}w{OqD]QGvàあ!B-bS }Q~=ûMuZӻgZU3fr~}x4%-]op*!Cm`žP Ӌ Z[;ˉn uRa 6,͟#@"=m/㥥GҩO ؜BH; y j4ѱ3K:m8#ؗDz{I)̷oC{ etX]|*˸ N{*e. gUw,{s/|1m,oҌ+ֲV ~ak{tD=~ڼv_8U#!duzғ+$\cz.c:WsJj#EV^{X^Iu-%0ALٕFMhSj)6֬ð}HBU1ֶhYY=7[HVY_7TɫOKtVKaMY ~,tw9K.nBV;@U޶R`gqfD6S ToxUM9kAoę\اk{mvtV[_U=$(Q2A3V-z(pmL\s(w6lvWKJ?rR.}M?F}#?~{ߜ/!Ƃ%(a^8ѾeȠh"b "O5rB9'RB$q1Q@(ϗ>S󮎣wЂkFzwݓ.MabjriRmp EVbċDޙlOmlΌ&e{{†X}4:Ɬ2O>Z̪7=e[QO5{ջJ/㘃er4(t)J%,F##ճez~*Ң"Y%mEWXJO ͨ@yV(T}}?#3040y=iTJH3,[~%#}S) ;ö# ojߕ{LB1{& 5`O>1梸J#R dcBn #o*Ǯ%P~VUR7J]KόP={SWR ʇX^>JNNuK'@D<_V"1\r$QN8H~o49SPa@vդ}~I, xEMD3L~N Wcx]:GKuh:39cM@)!MG嚷G&,gڧ.a LI ĔqdXcbh`LEXyv)N9fbSe,3,( 90&XeG 3݋,qNdI #!#L&}WqchXLw#+.W߻>ZRfkQYXT&}ūJl HHH<Q[{9Pn"ot'C΁O ̒8>mĖCE3˧(|:#XŇaƩcI4GZʾlZ<&mڕ-szm@wŽ>7`m(q7Cmr( ܯ=^rEH,@S@mV8 }m n៟'53L=+f9‹D͔å0|+ Ŧ\Bz%YA%piiUP]N]K&MS5JIIC,(lG>nJkr`OOJA L`ǯʥ3SX1hґcz4S#R-rto%6SjSP-^= nP~J&9'Cο!u2rY$1n-훿EegS[t~}LLvF!2AeڿM-#8TbG>:[aO~5] ̤h"D9ܡ\]_C$ 2кfN RoC6v)oOJ>;~~z& K1Imt>+*Fswb-ќB yEGŌ "uelЍ,)Ukd=rmBdALtIďG}&Euv! '{ 斗f:'9f(f:nF܌.ss?O76C} x% eSĂ\'~8'c?C4 5$Q9HUfrbõ *8 fn 럕4GV #6SsX>ܰ_Q׀D5`7LTX5wel+ YI/=𑻇6jiY0`ײMk9J&'WBY }rVwwƊ3 rQ|EhvqHmMp et,_7*_qۮFh2@<(w@]eMS TQ,T$|,T̈"QAG(R. EɤwבY`o'#L2(;De;EEzb-ռ[f*[a6VT:wU*]6"Tz|9=Z(6iX6\5lBI2%2Sow9κ2o/+Iz'KrRcSaiIM=R5JΜ>YĊƦS AR1A&v@7N9g.m1fT,ߧIt Gk֨4FHIv fcӣӭӯ׿WzEE$U%F" #k.QFKn]L kw'71dPk:_&mhM-2^2 fUoqKk1 tp12m##<(,Plo9fV2U[}P#R4yUVxe 0ZVg\ɰl%+0/~y\ BER54*2NITS_ȫTI)BSa$݃0ͤS59k:En0i! nWfgQE%4FYOۙDjI`)%w AI o.$;L}0ֱ#b@i {$&3!uPv:/}jUIɸ6ƃnJ+;ru,}~tM9 DA0`]8@K41"W:^**>~o:^٨I]o*m6},`8~m״4Eˣךoڡ;tx6^Cw$J'"!S /;,שC{v"cBBY!HKvLz}C 2qp_s{[?[R:5x ^$6G΢1~056 .oCc4[N$)O84K>$1>=y8Dn /033r"|`+/.d$.Eˠ[(teI,J]yr/X륓M!zB-M==wgO`(ƴr `^y@j䰷0l8b4m(ѷ69 h]2-kɈVsŝWܘ!qf}pUd Ò秡(qųE.2Lmyotcm(Y[܈[fDB#ue:K>{f`n,n`ߌᄌ7XYrsK833N'NSϗ6Pzh]sikA+Psimr)%Ji &xC>1zܶHGḄ1DQ=j 8d.QSev^vK jj/+9u9ѺxSC<&w=tE{jufŞ7f>٣P2ed { LwEzhq%pB|dtR [@rjfTĘZ*Z7[kؚ028|t)\:A½%$; W!/i֚ZD_U݅;wy 2IHpUrc+d;oL6"_媦:~u)3TYq[U/º܂dhhb!4ג]N8T"" @-m蹦]wmcXL_SGY٨m ZtC0a8g5_ xuҮﳕ6SON*Z)hZDsLDžOe_t~#MprkK]1[󽰥]+(qv.=7_t}V>d+_=qF$yģF R Y FNLB%_dٛksŅ Г$*i'oZ.F$5YEde(<%MP1{^xz8J4#d끨JbQ( N 26aG%ZZLB$T"!2LNl1Ie6K{}.Hms,Qtʨuϳ|OEANCPlpa-Ǒ0<uo%hƒ*;p4cLNBc0P^G@_#aYL@/wᘿA^}=-8"/GZn  %_Mo5Cc_L?]d_lq>=:|? =HLj C+ I GO)f?mwfff~GHLp'qxT4,ūGޕYc=4w~ ƌ:I01 gmg\vQO,w)^Js3gf=T~SV?Fl_3w)߽/G> wӀ0y{?Oz_NWy{Qkf;rqx$;&lmfRD/ļ^"Ǜ3 0VljT%K2!B!J1)CM",$v? cY 5-;W~Oy>w|Vbt*wӆ;Qmy$D#g-Ylo,#]6\qUfv?=xR[3%)"$N7 `EͻCE}vSw"FaeQ׮ǫj)s%a[fb J.fG0W)TT)X򵵙Dj"4!Zv"}393%6kqJU _tZ'YqS~ot3c d窭?:㱾VpdPU7>tp̧i^ck|:p>^oc9ⅇ1'\UP2G&zc"-T<4<_C&5sh׉o}_C=_U2׉K/;;Ưx5Χ|雗\[?]͉k]Yq2Jh@ㆆX>U¨’xܨ:ߤMiyS;2 Vj?u:_N<,f[K/-pp+eWZ BLukgIbb:g&v*d!dCFsnSnd%F棺;(DkT5Y`YU{VQ6ٯ;j9eO`3%&L2f b<6\ ^TM{ny!^3&evH|_]sG¾>~s%},N>g"]>w RZ^Ո1'{hV6-m} ?.VF2)Up+wv[8)cnۣ[le9.2|]s l9v1JpNyL2!z6k%5cf ~, ĪeRHKO~~8jSS;O&ߍ4;I\IhC>i9ՌMPKUUFsYK6|TXzE+uVBOpt6oHZu(Vei*ा 8E"?cJC8),3YRj^CMVEwV*`/k"wQv!(|W0)(oXp`|d1{ɍC]M0~$W0 ~vi[٠"i]zick2H 61h4X\7Mi`~a }. _QP,X; GXLX>g0>0}+\ j5&xk\}~u },u S U&Ty!͠:tFl]/X{HɎ|31hQXԦܘѳޏWPn0if"SYfkFuȿjuֻeH(UMQٺp5ȿj>__+sv_YifԚ(b 'x5%z`\̝=U7&y|6o9/b~eF^N/s*OS`O=8/כ17ؗbGe\(<[|cx1 d|q+fnWֱ< <(ooc.WA4L $|Aqʤ0KáT0 4b0=yHc1J@'5($t?!7fQ[ J^ "yBd_1d au!u0mЖ) UL VfʽS\^u3 GM\ABpNZ.9uPf]ހH(C1iuDpl3a+7o)vf,Rue4BL27ԯ4 $dv**o!ҙ(R%BE@0F۴B$‚LIRb!Y5Hd4Z-IFdѲTliI%I )]"d۱xultcoCSГBJ@PR HL+A'UJ$$ȩhʔ-(C$L#A.˴ƒsn+6KRenͮUv5F$Kfm߭鲡+ԥ]Q\+chѭrݶJksX)J5H )B0T1I qeݜv8lvX\wWD(F4 @x?Wn_ϖoo_}o֠V(1DAe\2 8yYs $BAZiLV(16od{'%P} ?8b + 'AX4:CH>񗛌Fo2`ڛrcr`7 @|[{4m^q0dВ #f!5]J޻WsT'2p%r%7h 8MS3w^ oQxvw PXU RC>>o1}FpK☬{;IJZrchɕXZQmpty$M8w$y0 BVf)$Ydh &A0kE(FĻg4q]P(SUֻjؐÀv;vPcK-#iXISQ\uUWSTgG3R+AJt3U%> o+4 Vmk#""MȜogaPI6j6`uڿf?^TP㒸lwV59* S60#HqLw6z5͚hFr'3vFWYJ /^N2\ Ѷf-KB8Ԅ7=d(g`)#-p}I 9ַl5EW87F x3Q _Fm]",Yge9,m6*`76UŔ>]vk \kuto2x$hX(={2x^`:jrS}6x3 I{i$S"UWYRH׷Y˞;eCLf:w( "pVͰ`#g-s D.ItQԁ LӼVâdu 孯Sf9Z1$Xmei/Ioڠr  8XOd2ġsSIt7K90yMNl0&aʣ-]RJ-ϻ9mޒ*R&!eDʳϠчf_eUM~- AER ft̜͟=,.VRܒZ\ڦBAѬtV.=neU=1-L"1U.f \)@HN 퓬yE59^ґQ#ƣ\bڞxټ?>+}ިԼhP'gWJiNXxw|O#;I.* ~ g = Gst86'l@ pF(9fJ`>oStQE-H7HAX|gsª;&Z2֓i9Ǽ'fʺ_ǜQ>p' & -)~#L c1`=vxqk=*ֵp΅OzW=%vz:v3Jӵ4(j1&P0EРl@ƒ-_ k{jHW̒Tʢ}mPއi5X(."XҮY߹(IIlؿɈ\ǐ|2qUGstZ6q I-6Ac׀%͐ fT(M#I T $82:&v+: =kH&HLc&-ru?v<5I"2.GBv_VQh:=Y3R"&(W(Z ?͇ppx8D1~[J+V|sۖ_kpx:ԟ_f q9#q_0zgRt`X >-y<"RBv0"|qz+a}V*bfi=΍jT]v]"JvO9mpXQ>%C:FFgImWYbn 83hj(K-᱘7H,1#DfLWَ >TqTu/Pr4 'Xi(~<Ѵq(;(TF2wo~>ui^̰J ߼԰vi|VWO9ݬ";HH_S$E2-!d;H>w/ ;s+2k]=\u@>h=.^e;2mU4-6w"U3.UB8C,1 bd{v/&F~gYTS;L%喎p8ߗDTMG݆0~e/'S٬Ѱ>zIA~SKT2a-~<.H-oYkC/9VkHJƤ앖(+t ܻcOGĴ1PlA^$A.QD8D\uWyQ?O{? |yGMI.d?QCoMUr!s\a\?y~H6cImNA!3DUy0Z`I!HennJ%'V$y+#e$=Dla^OXdZ2BJv:`j8FM?l-0!|Grɤȸ(DQXBLE;iЄgcqX I E4ƻ2m܏x964Ɔk')ڝ%^⯪|܅~% }a:栊"$1ϕwFgT -R1D0 ג۹Zc :U11k1MtO\4o+c/7sW* ў4oK[ At{nZGنH*ʽd <ӿVbj!"kmP_E:<ۻvoakQ(PǷDݓh}zuů.O~D&ɮ^Zoͪk΢߷swӝycahLWmJ'4zTG&;Ѽ`tAР{损mp|17\7Yl'"0]%֤S4xR= DHZBCTqHJwPk3eyҕT:c}=9o-tsT,oKaߜg؋-zKk:|oQh m EI\oLUc-iEV=𫧏DJ"l{StK!89X]ΠWs?Qg5!T@MUG_yn~达;otiX r%`7 }GOjN7K-!#QwNټu 0G(rj7wlK>aԥP<۟{pkM1fo>NìD22^? -S6a׻P?J kCWwowyWkxΛ-k'VoRbxVJݔN#+FRG^_J9q: =ndnJ1d݇b^_ݨƻ㪱Jck1îv1ֻ374@v'o]”.3e)2 a(aL[6v\r]cQ0-0Wƞaj Ÿ|siǮ }S!g 88.}Zs4j2;Qtﻝ *G_u[ Dϸ8g?͸Uߠ]+Eo8v78W=|MvYU7Ry&wlO3Օ8C}]S8cG[TN ^Wj/ٴg(,pQh!N&#ާьJzǷe3z~Vkfp< d0D\-'2!C{/uD5t>[ȴ#Ea ]$4x4*Yyrŵ81D4W|?q>n_9d&/쨁+a|dad.2vgLN设`TK/iqCst:-g^{6i#! pax;9ɘH;,\}HU}uS4$ߏ/ p|0$D$oیnG;e (/;zB7AF/(md&a} H0yJk9D{Lvl %-0qSl/Nt;v쮝ɘ0"[f |"h# IVw(7,qmFa]ONC̅+j r"©vUAZ2QM-a=:C⢓{`H E%B4+@m惒aB, AQifr7Ktӝ9]}=""#^Ty4JŒ :*B1pH_Ut6[-<#j[9%cH9@ާ֥çSf:@|lBԩSlT^SӦ`k0%Ɉ˿oxhFa`5S{j&U{ hU0WQ7kw*u۩kfSvۺ¯7I(|~鍒?EsFqRB >ۇj!&lA# gZ>/䃲Q8+KW Ƶɺ;aheͤ73~ic퐑5$oA_z1c;rm"qyK 3IEm \˯_?ʈ?udgH}VMN&K+k.z+6²21p2w`ߠnl={jZd`59O)EΓm䡻uRTG[qd>nCdC~r^t>cnL񛫇3뭡1Yvš)CBf P̀~eQð74X\W|{MZ; d0);t&6߃ȉdoYa:f(_ '!B0 @߿0_wS،!c|m[RhXt)sBxu1#lgڙ]6G=VކGO^/*]r-hM͵bֶ<l2KۿO6 Bmp2-fԏnޘH'"^ܱ/߻,p_ 5Wwikgbǚ `A+D3[c=Hޤnjי] )~ ŖtKL%Z8Wlg*f^9e.cn?wYǍ& %|*LxS ԃ}kXN`k1̩٤>bYQz.-|VμqfZZaQovB=.}r"߶ Αu|"WyjW~"z-ܻ:m^OРӌ o˩S?grf'=h&A*@j&y.vG \c^yn36"n=my[;J{ykSon3za8< 5cM M1UG*e%sߨNХ)_^v5vUrx4?~^Kf.1Kq`P ~ϞJRms/Hc{flC:Ə~@<+7@57(E,V~C⬯eRGŭ>YL!{ţvPSWLe1 &6*p^AÝEzW 2B؄A­_]k캍)_gHF?F[ ^k-BIv}avgACG?qŋJ 5 ܍ o6bD 5F̉EDE?vN*TCml)d߆ j,Y=:iaɗy v()o$D645ԥ]^84dbԈXE8ѱZ Z[f'ȴrM M:=paj;vU!~oTqy}׋E D_^H_GkLGvys38!H1c)QF<"1e99K4["4 0G9U$&UWdHU!Zf^:c{`͂l~x9rԟ8C$2 2T7%_/;rl;}P^FY}=-wg^QFS 'ӆC˳_h8xz?no/Ip*b#AhvnA?rk[9Pk TIr`*T c2]ycBPo>}˫]r..4l~C)[nUdxk&17~I4$vmlz}qyKhye(_.>/>{eYiG#,mAoj8㻥;<>zq16.Ȁ?8"0RkjWew"T5/_-pLjʹƝdNj|C!=i$#z)P2J'{l Z xA5TZ jغ˙ã{TEitkR3UNJҡq*o/?TF nqfy -.K-#_K`IJyiGjzuQлUi#Ǻ7DRSddIVf`3~9J4ͤ]NfVL4>>0guw6=fhyJddd{'ygL$9ggG 6u#O=' 2+)dxZ5xUz*?G ]!]64sL6wPL?.4A1W 0Fn{9FlR Lr(ǘv#FL|9q@f8cHb.u}zp]aIrW%JeiJݧmpve/LL)Z!f)|JP|V68C*w6v=vFYEG nح^DƝb>uTW2@AhND1w#>WۙX!zFJ|:$M>|v|-ya|FIőץl/17p[a9ٞOW_4w}lTO"nJ> ݈_/T-jFeWlQrZmtw;\+׳3لxRnq-wB7B%4lYD7)k©6z@CU|^3y Ql4գq,O."[s\ \~4U`zu򔡲FfEt,3.'UXK'6rN$ Z!ƒt&kRЃLܻD,2ABը8 zzE7YH2.ᢄ]~InUQvL[F>5E!!n>lCQ߲mܚCۑ6|Hٗ Ty3:J _֢{Uϛ-+](]Μdly ͪ)Tϑ[U]+.rK EbivDuBz$Gp"VAnoxW_mеrroݕ.f%ۛ^A0ztb(e ppl9hZWuQ7ߕ[meRJR}9E%Sv)ܱ2[K^"j+{xo25ꡩ^s[췍_"ԉUm{Չ>'osg_k3XM k 6UxJlHRe7AMP04n)e :t^ DI&@49&Z%F1kJYllXLd12&RVXd,2)JML&BSQ,E&f cCl ˱4d,T̖&e,mDP_QI, 1J o!̣H}5҈kHU=wDԢdI) B@ʹ Hb__d#+!# #H. pffa JqEC$HbmcZ5QcdV%+UPQܡTUjpR'\ ېi5*:# hJL$k:Z"TP-c(a$(! 6*UAP @ʼnSRN&};`\#E j4ڸB-VLڷ1F 03a~ iHM~"`Fo˜n\HWӞqۿ';/s}d;;3,Hܴ|5_7nX}AC`7uY&P'G^iu~.ZIpˋۜGkyR7rDzK8{+ ulL؈ a]p+ (ϳcX)ahkg# I"8 k0)jvt$\I}ޒA(a` f+ 8gHM!4-xyڤ?K_2&L;۹ᣞ]hE,g #7" =Ll}dX9T{dc8ֳN@B >[Bk8 Gt/[ ua,Q`f&ۆHua#9M&H8CYA t>}}#ȅB`?wW!ύ !lvG٪EH3x jw~rĎ(gplqcyixJpo:${fc558xy{+՜ 䲻~Fiztbc+u Ŋ ˗3LV.}mzٮd\9'to!(zCA2CX2 Mt?Yŧq Ϙ5l>"[<~`bt ^:/l ( ׿4TykXC!w94KP^,&hD8?qAǼU-Wӛj%>;7i/2S!6>J*۬UI] =N_;wIYHeYya19e⛑14bɭчtGx.reqɕU8L $QuHV"!oIHhA79'U'孜@>01_=|3=#;=[Ӳa:ۤV]wBh<6EVfd +:$G~ biyafyF1!.$$:cvFl!{>Aխ82Ɖ;w9r,^33OκT{u޻f!FNd&]ffhO{wO<4Fǔ\t. ]Zz^ZO>}W{7{81{{{wwu9ϐ.'/=s}z0S1I 7nd7j/knkL8D0qCeLyU x4F#&1&*B"3j=^uqq),~q5&dī!sj6ƿ{ܳrI)/z *ط^1e946Q+hMU"G0m{GB0GF^*&՗0Ai ,<ƃ[?2̟]n=q򣭾'dz\% |z(Nd͕' %Ep:O6ǜeT8yWZ*i޺ L,l%Jx6Mm;uWµ!leTj3 F6dAd : AGW9Y= ӭZ0'.vLIǡW39KT*"A "0F/Z&jPXŠ$6mDs DRҪȥ5Jf,C(3!B.C5$%4~I>F;zT@NnG8iI#^9*ʾaNedti'#8r[S6ę3$ )N\e833o|S dRwrlBL֏)_UG ȅL@Ljslo$u|8Qi Ô  m A@i{|vp\FY?5,R iESytoJ1# ㆽ{5uS$O+ aARpO!)Lqq5 \3t٦j|*p0W׼cXڌVixµ[y7w<:•4l2ź%tLz}39E-PLԉD҄%iEDuUpChx[6㙱ZmiXM" ϶)R3{\t{߳ވ1 ({%# Ǔ`jsѮ&T $r1-rAJe[<ZqcvsrCevst?Z! `|삻HGrMwi obl>=!6v[]!\ty(ko.gλq= +Cg֖z¿1G"F˯هwsbuWvBW2Fyd\;^NsAp70F5F?V.DeCtN~|?2s]ӋDZ$3HkBᴲzt4 :Q.2bD3QnU3' PPbWRHݐ,0JNxE@Ca1y𣦩$e#25z,,{^mۖ7Xt@~rbXBmkRHTbD3]"#٠lZy3Jΐ<5ۏGp%A_M[T2]b#SU+b\ nR1͂QỉTh+햫aI@Vb3<5`q_NFy]IUkbU_d2`.64nO5L!)9^&Sm5ף\cϷҕl~c(9$DGdU!b8Kg2ѣ;b"tP8čxaڱJVhUy5FJ~%ڊLZaf~_,a&n}*={zh5ZW.dwCtH^0@LѸY-9Ug?ȵZ:lä)QћPvß ,Dt`:13y#T'9é S+iIQ6Ijrlf"+TÛr`HbkcXw.e0zWtZ򌔏%ћ ,?Ŭgli޼]G}cYXEI /MS G66ҘX!0:Hc:w~#1~&a;%?|V̥KdJYVr*J%B%I!D$PCpNʠl>d`$s~Q|S3i,8w ;KB Y`ɪR\w \ WYJRC*S1D zb*Iwy51y,ؽVˇ.],ֵa˚g^}iPGCӦٚ1|ʝEV[Qj(-ZMk6XKc'!8M%~W{43}5 KaKCѤ"P]J#kd'|?aI^_Ogܬwoey`OTsU7*2|Gݾk`sA_jPf'ԠXcdMp.oMj+!H>RTY-+걊wY[uUmmwK+)Ud/Uݳ_dt gF[;]el:?Uħ׾rחJU썖?(oj|?m1˥r;JZг azkLTVȦ*2*6}a/ ?HՌBގ|8LӢ;jQYS[\Ru1d\9>ueve`gXWbf\)ݍZrzrυ+]PH]]ܠ <-ģp9ݎi )J_,Rǔ *lo u=VNjnzY`:)b@NsjCa~99:"A/~U,cqt&[ɐ;@98J#J>3f*sqqmxYH>Fk8-2^ \X睬T2|3qY,]]o=.7ë۪ΗuI&t^75FќbkpA+XF7O}7@r'<&A8FH9|:J;f&)r#"L1a!Zh$f3T.kHl8e* w Ta5K0, TaYD—lq[y|lSs$)i x<4{"N&DCC{"YmL"-Y#DJ[2x1bi azJfrǪ)})-:hD4Hv\6ɧ2=JSu,,03f&C{ypØv$q3$z7\}1ʦ+uX fiV/ q KgDkzܚf iF]LI K ï \`ęx ˻~'jWLF#u ̬_GYf+%/@}zgv溛tMň,Eu 䞂5)dCm:ku* CKn߂_d k%M x4IhЗC]%LU *ࠇCB#SU)&^JfSEPeՔZTcXCC4*"]?b`B$TRGPITP/.cW>Ur=5@lfn[ۗ|P`@ȆPӲD GT-{p5j)E0p{| )Dd:$P[jC?oG 5B?˫ƩMf}]0 E&RVJlvʸKjȔ%27=%IpE)d{<~~#N̺c e5A7K۾.vv3qO#zsS+ P$  #ó ?b@[eØ N/bNGa֪xC9tg:$DlCndsPj4At],lh? oʒ~T2 : <b" 2u,JԞzf (M$aI DKn)ӯ~ O=v(Kx*|DK|O_?qrx44ivf"c. pT)Roi @˕r5YƲ8 "X\r!LOfIizBC UJZJ{)!bG:2} -{C0=ß.LÀaQF@?C 0Ǣ\1CĺNhӊ弄48F)->?<ϫPCMn<H4ҍGby:}i|G}i|n6hsoXeV,EaxnbPQ? ]Oâ%"?~?ejJ'=cORTy/$LazK LKƯtfXRyB$&H4`9o罟NsD?$6;a\(܏Zj)[Xk+!6P1jfMȧRU G$o&$hNĬCFX]"71NDQoF,ag= QkE ɘN2 rcX-(&ztIV"5 cws9|po@\A"aŐrcԧwy>;>lIXA#J@SQ'7TOe:0 _=/0` +!]qE՜%WǎTwNw1;K+~46G,cN9ZTLyS[dkƚ;Ve8o#Bs6VteXZmkl@v^՛),λѮdO [.VD3^i8{Um4nTCGeUsRR.weO ..:{vNzJ#afݛy1- vf``vf />d!"*)Al~^nI$'pR /';[/ 2\ ՕU*$ue[-U|sSԪJ滗GD>TV~Wu!?_nhO4!H5m7<\eєz'y8H]r{ԕo<S;HB0 ›8\-[$' ;E-o 8%'x*Έa%B ~90e[O,RvEXJ:kOe]\1ET.PCM%PBQxhC(@!AkH-1[i> _yFRxmj |R#R6'Us(;RLM:bOK8)n 8]^ YMFG]b(8_e2WWuFҢNZ{^v/B%F(aHVzxחo)߿/kW5ŷW8vޡ}z6D DdE%1ln1e2zkI A0 XK{iaJmo d y)!7wlRkrJq|^a Ҟ` zHk F&"(`*3K|+mj @:$Pu`[Дol>y~,Z>@÷U~@ZxrracDŽrUIO1Uy9 ΫNuSYzI :xf4ֲLjj&4`Ә1GRԎBXEMT,by~ve[ B0p,kl:F i7k0M##5kr%sZ.dX*W`n,y,P B 4̯N4il`jFEa!4z3>D[%Q0TDf~}7b !1#  O(>r"dJs߮9#ќ2:A 9IRmM7Kı1_ubKLTH l(3A b0u桭U*?mF ڊ d XI 0^^w4 F+vf:yϴg^ R4 DHRu.=޸2a_ i ZrD m[ &GB2Չpc/F.5&<c)iAq([\Q5}wfA{!0M۸}:IkI33xم1o9psm/ [&7NK9E^QbOxqQCj&ч/G~_ _9k-g/Yd⫨v8zG hCl" VRr.=]dVOf``rI~!j@;CcZUVb"vj"G6`ij:t; jm;*ri &Ymò?uF9+@(?֗/eesZFH(o X޳`jV%_{ +k+{QMCe x+*2ͮk7yᏭǮn]47,ʡJ*mc: U~ ąrsݐvbB]gp@9hW=Ɔ?m|vߔ&i{ kۃyXNh GC'XW@Ilbeƹ3,FoUԝU.-Ͼ^p]fo*UwI `h 2v{1 Ɩv`7m"f6##1)%bȌhm~M"i캘rY~; -&$KkuX،ib4j(iiD )4bűI(Ҋ($,&ldԦ6QK D%4ERj *6 [* IQcj2ZJ&EP*MY#4hE6"ҦX 2VM>s11Fvi#Di/вY2h?v26y}OW0KAE¤):`C~ՑB@H@$Pf³A>I>}# 2r?t}!`(2H$ B'? @ L|:g/M6!RɷL;*IB0*% zpLKDix-f(jmga<-*/-)XKL̞YٜE3Zn[~MnfϿ8ax@"!*/QWliq-.&d]R׼AG+Ϋ:FN<'njʺVo`2\'Y:+BOʣ<'QUea\٘F["TqjtJJE$j!i znM[+ϢU,!3sUoїpNvRJΉFG^mlC;{q Ѵig]3z6,x,]Wb?9splwkS93j5v0E]W]ۮhs0£_79 n1"Mm f[^|}Y:ٸ;&CPҳm»ǧk٨%8U<3 ʫcc3:wj4o,`nhI @88gO\]G[+8_xX2ЫXF&ךּm bH(c2flғtVG_Q:<^(Q%/!2*53S IAX$_[43 ͵3R[D +!*aurA%5k{a.$٨&? f#3< rZ0 8>l~ДHq}!ޘ`4_\Tiy5/Fo N8GcFmJZ+Wͼ֜bt+E25Qs֛M-%j̀z!Vr[]M>~sO=AIEs̠Q?2GAϤ1r;hhgY=QI.cJIvQFA񽋓1'VU7`a0[-f``ת5cߪ&3mt#:MGշ˜梜qS=h:+4N.E#mf@6A` 'F| 䫲IDYudWo?">7 ckmnj֍}:댭Fq(rdohuhoPVUk "k$htU'5,?W='Uj|>qVVUQun4Ͳ]p/8I2a:GEmҬ<` \^l:;Ceۙġ%*[u13"1--X&w<Ḡc ]&jljf>'ˣfLг/Zƫ7vkMbqcqf+5wƒI!U:Y%G 2f(fUXCTk9jw̻W}+a9mv/h̥Mk ?G?,`sJ]$ש3BSv5E Szn)dշc\J1>c`v8X=|BG NJKYy|C5vq "h#y]*7(_[loj"gКfT&T)yԆV^)2fa%R_s]ed}iRs2ebbTK™c5a1szs\:.iAC,gW?|`Λl lI6ww:t|uQy9hn.uԾz =KH%33V]s-1Q[W6z\ȣѸaVOtbL EIKY0Y?WݾcxzFoO Wqf(p d6n!5fI$(IH=fzunSӆ0*J*Q@IU2q[9|?WYKHS% ǂ_S11uc1h&cV֛z=`:_ޏCQLԑaUwF? &D,o͹"0ۺsYL/s0jrvy?WuG$ N^|oޡRHż㨒HZ433<֦3!"(?WؿvVnv=EЅ2gdw;t/{ 061Soϲs旟WW]PzICE8ʩG0gPeܹ4%Uu55o2p) EB sOnbzM pkU 챜)JP0 㭉w ['0p!$g) W$'>ovq##URyfj)$.ۻĒ}ӽ:Ѻpf);Y7Zcy FklI:]Zf1 YCfw*Є8 tO cP!.RJ+ct\<`) Xnʂl8I-7n U`Y5[)K0YtxI ArH$!|㵞!h VL?!7>? 6}i%O.8jq[ y~" $cAwQXtRpP!Dbx)JR'M2ޫ/|:B86 D|V!jnۭqxk~ qݭ++•,O^睞>/6fÿ]wT_O}?oqW ΋9g[!&?[jqo -Di7MV`,IFG 1 Nhm:ݔ7 gîqDwHC•+y=ٱeq8 ;'0}f*a2؜HNDһdP" q' 8\Y΅d>[gBZza5DƭJQ?.fff QJZI%Oս&f0tmH-,^?0K-U5rct^7oqDN]07=T KaT;oH=L`'G|νYvةG4bڏȇyğM}}? t={37i_֓w-Շ[Ʌo KϮ|cWPmm*Y8N=9HsxEљ+# j$}Wwn|uo!'Wot~ D nH;RH1f.Fi+RA~H359aEtۇ,;}%@BDԀH֝Tmi֞oĚTzrݯ4(; ^#dΓ0nμ=4q@'ܤ=B22" ={H@vߒOCi5zUBhLt'($sxs Дo s>nCU1 `DtϓƔ2c>3g^۸{Mu |D)1_P*t@`h4Y1jjAY$'8\;ˣ Њ,@t7vt˿M0}`[8)LƦ g^ۈ. Fl8&ﻩ:يk);a( -n"v};7uxki ^yRgm@ᆷfwt#eܤư-b[c T(4kŶBMdŇ a{vDtw vܳv? !z9f y|nӆ'1s~ѮKD/$«FʳCCIJ,re8nD=;6X[' >i)nÖTv<1XR%:k<^mNՂ LHbmj4[lMa'j'ϳ_xIkzx]% )vg"S k}u.FZ`Sv`mg#-aU鯝SbIGRZήE@o凤"䁠2Goц8zCeD/A Oy0~SrGDpA Hrv@;dAw"4d[㷂ƙYI <4}}:3aVѼO՚GaaB(:_WWolÌ 3ߥgڭGjB8)U}=Z㴪7466"LJKV,Ym۔H3Y S +ᶮЛN /lUT-G-6zTd Z E^閛2.XC"{ۇE7r٨q4;=||Ig@;Ԫ?JoOҠɍc z:WaQU&.kE)ABx޾;K"|{aeX(@q/3Tk-Yt:D%Op. Y|9^.F~m{l?IP(oALHTG,~fYVƮ(;?1?-96f@`?c;0?f[L:䣭$a?uvb6y3.vmMǮJ62Z)uES!ōsESaUSlY jQ[fv89#xP qe3dm /ΰ̞K Om.;֬l-24(k%qtR|CT2ӢYYnd>@ZQnE4F@o,1I_kuÝكp$)s%˩ [Z B9Eֻp/QWhR*;Ʉkzx\qcQDo>tk#e&1AJTQvmkZM3ӼALXkIVebƹa2@~Rln|2ٓ݉ijLR56?*mvkX;^NWzCjRx}YcU~ʰ3ͅ5MZ1<k[*>qhhfA[ *5B )*a&jpO^bLg=O>D]HgQ,]J!uJLU #âu);I^8PlhG9s64iݼ^kNHYуR:jF-֝L.pGg3{MMq<wW4t;JcaC1)]N8*bO9(H} 4Yd}a2a=gQD6iw'~ W2v AF]f̥RH 5U[PHȭl̠ٯ&aFݚaJ1D򡷲lrS6t]N O$MFV9d6_oؽ$<~x9*P>9Gc0_^x$CN{D;#y9KljD]^S;x/*=B5XʻvM*Ւ^EWfr-^EpeJor$,s%8T~_uvz{0>->Y$p[t©N(#lU9ǹ bho6"4טgY*"IWI}sv#` A^XѽgÍ$E%={ru1@w볇 OwۏU~,%Dj ѥR㔴fa-ԃآϝr*甖:0ut۪=yWmF꿖_Vd_.te h/j}6LALP#ŷDt(-SuEMYzˇ!6:TLW#*E7Bq殪\(mot}R_5)X'K6T|d?lr R9=Ql`s"nhD(5aOJU}uqwՍu+,坕j;Q4T12L3b(H$nƩWSw/epmbb,61V692oq`3X˷Ɏtq`880/\<:Jv ќJeYV?6=Bzs*ΛC~3LZ`j3 30”,QI@! Ġ'!8`܀s @,U 2JERMd!@ᣙZ4زTnv#̂'N4I`IJMώHVXj́"2 @Hal&ٽ ȸQD]g+Mv]yy9z÷a8`80f*R-IVDڮ?]銓F1$L( 4 &ҙ+DZ]LMA)iŔDXХuZ9K4jZ0ޱ߭DE2L3˜2aޛa<ΥSJ 0F JA21$+JI$9Jl_U׀] Q-(aI%KtiԮK̚t EJ+VXU DbQA6f ! 2,ЦL#(Ԇ@2 ,4xkh C IJJU(Qtw 5Υ$M$@F'%4Ru$MiG%S  b VҨ #zhaZ L7|S;DV/U(4?IoϢ{|$_̾Xqa!Ѝgd[^@¨'R& -%܇!#`đVJ2PMW(M@X6V*/(ʇ^|e4sUk3J9 ́>{O|Hߠp (bc[ݍH!&mSNIZ|^(p#l;q[dMO:TbI;,dDQWߛ~xph)D?ݞ2t5QSBA^%RIE9`  ;C H \S0`(VPɰ;Dt}y̳ӸTAA3Zw hfS 8wgz9N+&A (b@fIOPu7 r@>$-#3HBh%ƉECb'MRA d|U@Hi:#Jr> H Y2UC%P蒦.X:, #Ԯ0 '瘉QE4SEE4R[л̲,נ^MTWC}r;ӼSȂ[ >3.$jzfrƩڞ};u,8&8^`&E>0Gk&%zbC'}Q >((();r2@]$H 'fUUCSd =~.χ ML L#gqn^IBnx¡ `Tyڊ(3f\<,<]_2:N8I+: gc+Iƻ]b&un]wuM@‘-1!!ILv E7V",TKNP$F&Q: >>u&$H{$sxu@;POԐFB8C|_H#WȊBi #{#hB(r0bkԮiDbU@K7x6̱k6*b>l97cLT@NCP: Y|={-ا$u*|dLv?X2xIƍ# f}Y.p[ӤmFkg:dƐ@b7]B,Y! ah1a`'8s(J^VJM`CոcH5 %iH"`ckSkF<\ `9zAI .<>29iϨ Ƅ^~By=|=ZC h;x>?wƠ_1yVaPM V HA[fE)$_";87iB#z! y];QmW$({-6!i$I9kRPT)k!P(Jf"FAT^YDk#IU9h;|4%g'd l]|޽hExǰ5 `S g4 T0QҲd0,|?1bG=amf#r #I& ZXtDk mS{fe wLEWllh`:Y㋔GrQp57Jx4qdOwɣ-$++aV3Fcm; 0Yr(x4EӂmhLOIgS\7c0:lǵ=C#bl M,vD$AC8dgɉY_`]UM"aWH=`fg4 )M4E F6v}]>7'<~:3WFT@lCsqK348 8\HmJ)v͸gMfä' %Q)Fu3AhLA0hȿ5fJoQc7<<!06@h{ HABu5%q @6 (@wl:AaW_CD!Iv9H(,_,VN!֘ ^?QdZAC ?z%h =i4JL>Qm,(-g^&g7M$p ZK7=Dm}TB\?A:1`{4LmPb@_6Rx}1h#=А#a0H\IF,舋>"E}VMP m^ؽPJQKWDq=u1:BN"i{>o>bQGtF[F.3ћEId)MH!e.M hxt²2;~ـOaPzim_ӛ>7qRlHM82m ǁxgsH74/$vJbJ\$bpZs>֗){4ݵ.WgrƴUW5GZ+}5R& ]JrYm_=EF} ) P>HpևT~*"'L  xAҏrUc)hdD=Jy %doS?R8B#j֞D}a=CwYh9&d4:[[ItdCpd"R`J~]XiJ8M2J.bQ=;"_`}2/lhaI2{rT= vy&Cni6">h*@z`3L_z; `4C5<^͏+XH;! Uڀ;tg .L?Oo=A⇽M9` z(2 S yai˘9|4U)쑌?=J'ď&xEa1'_0!.H'LHMa*>-25d?GwcY Ft_w׬LpFe?gPyXBu9[˧ϵ`o11iI%' I0Mp҂c_v5@ %>=jVrG{@ (%kM(B8 ӄ\b9YEn >OyfSщogܗgP5?z T̻X OK/ ,R t4y>և̐; ~P)]% Pkd#D3' acL/AaPD0P!.4zcT$0$:=WL/rpp$/|J(k֛/|18fmH'dhD:/6#ߑ*{p%rJ H/Gく݈etR1p3Ͳ?ɥN m@t`ePNm|Mg;Isb!c`6w™MQ6Q%$*04*0Iq|EX$H8U"pcLKF03D&S-ׂ#vZ,Ib:qa_;) }X4b/)z{'XDHCw R &P3È'ܺTȓ% I)!BY_Cс.}22b,`$PiϠ&iN g~|Sw ~ Nʺ43*k3@nQ&ú򷘞 *JL!$&D"$ ;ނPN>z0J8}Lw_8 ^\EWu@qzsڠLnzB2zNL E|Ю @IA});0Qypv>'X6 ֟-yyS!Zׄ!upRv&&@A@(hsSoLuuWPIdu6!Io͙N•B%G 9"#m#&Zj(ܘg ,^.#aZc 3.0~d0d~rc6.h6AN2GDŸyn|u ![lh9+PvB#'׳bv~!!F_| tzrաwys$sS|;!CMhLOzi6bpD^@IEH_󦽞G_GN=Kۯ/([ Bbi7Ʒr6kj}XgQҁJL #)5H&zF='Zi*ܨ Nl>0OPwA *Z` A])X!iRgeURE /x, :uO HF& JߪH֒@ABj{p! > D$L*kAF&=19|7USX8 q(0:$9X )H"JM Ñ(Y<,a%"m6N`I$k`irlXd9(7% Bba`Jh)DHeUD HUp;mLpL-Œ?xRB2yΌa%GGDƄغO`Vȗ` ,At_݅]n ~d%89"g``}gAK0Aܤ.PsdtORawա XQ!\|v=ޟ=_Yx>Q! ܶW0<H2"ْ WIcZC,+铋;xk@n;[ ]-BVeS6P:da^ܲM c7cIBQ[U1I)$X|LZ2fH(Y+i0 xjEI \@I/ٓl?`uI;'C=1c-!nܜqP YUWB8Bx`ȳs/ ZCגvc )~e2T{6K\dHdO*tLH$H$$2@KOrC=$T޾xۑפHr4B'PêBt}@Ġ3W4AW/;|"˪Cܢ9Oz " {;pnQH 2#ĶCOB% zH`EAz"mشГ sc ZpZ AwhQ-.)JC dȀ#iHWR;6,@`F+'7Pxc Fl]xP^تs^PHa nIf\JLDP?G֨?U@I_:<_,Yᘅn^B⏩혐ІC$%\%yttPzymV L00P {b&|TD|ˣۋHUDbn<$'3ptO̦ r2@Rr-0-V0k}#ӃXv>3IX8n!*#`B;؈x gk4fyAG?ѨK u@pvZ_LAwEHPW؈ى*~_ >36[I&j(/jD쿏:G)d*hCCA t<]>4-C RJrh 7#"ox/яS}I!?G٭qMik5(q:^+glx^Hk(lCb|pҙaݺ &O !n}O t{ .%{>Cɐs?O(g`Mzi%5R!4st0Y`LP<.`HUKjGzs@bvT%{Qm?S(~`'dQG@=uٖқ*6- ,h3 "2i&D J*'4(?OOU>e wkz97 A%.mu걿ӿ/T}%m/dF0+ 2첫ղB5Į1LFr\*C51Pv1I"&+-(_Z^̈́뮨c»22Yjֆ)h@q< { ¬<2bUfz7\ UemcUGςֲ~5n;,5M>Pm`k}z/ |1Rms\ờ ~%rpP`fh|2fraťC4W:P2e0%帑.e;Z7>Zʶf*$"_ V7Y&}W/ڈhkaU,SFm%A-[LU%£?/]nW"#,0QRDȶ{!,ReY;twU]ND7<&s XX+^xXAө azȹw8;k6Sb,4!>ypb㙵ګWƊ Q'78w7AD5<}󯮹˟WO;F"*口լM2ˮBU,M ,y.Yh2. L_D2IL, D< 4ٙk,fc&wqX s~u& Xq3Y]_YTVG]K]_Vm۽ң{bu%nuFHC{ᑀynl$V:+5[êUwJNGxxϯ+ͧ6YNz]ְ@)dZ&s|5i&jr{_߉9/sfnk%-fdOW ]EmrtՃ 'in!55Ga!&@GO#A?wXt{?m iK?w=rvoF a$ fo)*KَڟC\Ywԅ+:?@gffowMe' PHNqgHZj{/jj-_-rY_/US{a#=LT5=zVmJkbVa"VϼnSVfsYF}')O.g!1DxxAhFk5'GȗY)Ɗ,OƸjSǖlغ]{DqhY1ka"L<늢"LⰝ-x4 u߻[V2M\i v'ą+ӡI>ORuVjJ(0C[_iբ)ǠGNA?C@Ͷ%@~bc0|Ł7*ѱ1bH0~O.^t)蒻 zAڽ3#6ADûAGvv+P M},z&̬j[y1^Nx(uNG;G!02H$DD3"8 >];!/l"W#:p`DK]B+ Ù^$&pux>9x/"G~dꡳ 1%j}!>!'@y:.J `8>E ĠZ9А- 2C^h=HcӃotMEYlzoF? DSRUQ l،y6̬% 7B]Cs=kpBw'r(b_Dr+aՅW{S%$tEꕬ?paC҉z;^Yay!2lH=+ѧSa @HY&aٷWD BH G"h4 >T 4KN}dUQ>d H06R:Dh-,[^SHD-AXK (=hlUsC!fܮHWׁ; >6K,^7XT zG2̉ &V8yT]ˡ~c} &2=<B&`و'r[6Ҿ-$s HOpmv$OB'g%6Vh;@:n@° z( /MtD Z[TZ{QuT GҊD,XaaH-lr lVZj8 R$T:Ik ^Ix$ xu:e=p<zcp.a}OFF%A\ A(s(i.!|}JXa?ϘP1 !pF2yH@LH]70 $5UUd'Q1?:B0rvHq<V 'j;+V gAI5uXR/DBJWWf _ b2Ӳv6z|T4=pr/ (0:]cǂY$PIZmygK~1L.j1 !alT!{OXolVgD g\/Jw4b y 6#&pR#S~$Ar4d|9'`Q@4oz.ti|fϗ^%!Ue(ǜ ipx ??`(p  ԭ+8QI:?$;0̓=AZ+6(OTtO.HyC{✐Q V0a.f;O1{׺T Jӭ_zvUʦ"f&ywق~ss tGǰu(_DX/NOdmddB3QvuߘwlY`LC(TC'=y_ ޗ;u"4@ߝOa>)\'af3/n|˲$eV0t!84ҧGLc'Sm!;*ܬDh+B,f^%[yS|5Fquhrl31JTW67=<"JY/0"n* Z۪)뚫 HF];Vč@^1H3F ꭦAa42vebpu )290f9Y`pbT J-19Z5 LK(2k4D&>Vv#׹Eǰ JoM˲}'3 (Ս-Cߌa3C8iR pr`o=W$lU< Bؽ3B8ŰoPJ=zŰ:0K#xtNҐЇF0ZS"mY;**¬҅YdNFď]V2 O84M6  eWMmB|tW10h2,ca7JX ĸV`VE{qBm&`Ɂ6XhdF uNKVO{( iUh}j#y< >!EOևY̗ A2,yk@쑍՘Qvt 1 8U7 "&!+6f#|.;(GtxIKQ||Yw}RU(+:NV2W6݈qwb{{!NW٩\X: agHPdR eCJ{N&h^#} VzHhIIJ(즡s[ų .뮯wkˊukӢ)hlb,է^n݌>w`>;>i#>m]jc'S[wD/Vt>7}۪uQ{@8>1kCm156cCbp1-na'E au1=Jꅵ_`!yT!:$x<3XwP ,nD>Ak m͞v(nk˯#ko5 =P09G{`BiI 4g-kkePS1 nD vafĨr2fDvT!6RN/ow#C܌4Zɻr0Sj)`/֓o6Fm| 6дA`dj|LMӽW6- ygs0j+@$>SD$HjA4fYTUBK )'%$ԅ`?`\s_8nOK]ۘŹ,  M됦^,ZE i`LFr̅4*XpS  `e@eŔS)plIʪZp\/a0+(uh܄keJP3Z?SB 'u8 =|A]l_ժY쇣Uj?G1'7{)|et:}pPj uĎ0ʊ~1ԕϷL^{Ɲ"*(zh4L=8@SVb@`$0̐5^t{you3~_Y&ki:'wgw0߬<30 +: KX(` )$ٰRILfK,6@ I)Uy*|mU $Z㇈P+5!S;=.ԽP=IgGO3$}pRB(AH2|1 !HrTaL>l3B "y8?uidT=Ah]N$5!B@ֈ\3!Қ&c _Ja%E ϼ0 |h>ZZV.oL9 a4>u>%Togeт4 .v!ząR&ajzE9|C A> ΜY 4mY0{:*o%܎JR L*EG-'.ޢ^B_I>wi<^ w=Ub#mSXKF6lYb-"%RZ&66#jhEY30ڃbj+A,kFeDIBIb}UZ6Ny}p 2@8Jr!b%_/"JQP({AMF;߇}r=5@^^#3o%*% }^x (H?3`w$ 3 y:@ SZ4JĴP*#& fҚjTҺtOogpw_.)?CC#r|+++y%(%(}E=HAiT( 8Xi`G?s/h (E> Da(k2XbAMHQGc{X<'r@)C1PZ?".7h7OY\YT77dֳ):6`Z#*3݁t1Crm,AI̋ *iT>a<1}v 0dp͈s0nڙ92fa|<;'dK fz0ij,bpqϢ ¯1ő @@ȠK~;wK=AbFViRH(֯ly}Hs <=Q>r:K.De`T[YtPS f-!Lj$;Oa ]H-cKZJ Ϙ:<KK0K%C68|Aا$"&"%A D9S J(-@aLA?o@xDLp6)U}ec0y h1~2!CvZ^ A с¢٧{3NbCNt,x6T2|,՗1|BHC埻I@z;c]d2n]xyoA4-2]7+TU]=sNw>:lܶHUeF*-- * eM%aWfͫD6W[(UbI ܀V3 AݤCڛCJu9$O%iaJ >ϫl鰮(l*X"4wh|||7bCVl3x$V|[ޥZd{1EkŽZ?(`N)~{1ES6]ʻUqI=7I(@6wz!nwl^Iv(aI~=xC돵tB ǴgܴwCRF7S}9Νat_#lAA)f8L$9y(2 1@ko#E$>z:0#H?$az%`yԃ( +2JLuRיm֙TURH\"i2pD}Ec"rm:޻uk/һs+xlG@d.ca 䀅 J@]f psT`$3 '|M/|t8>ʢ3Ni;ēS>xl;i֔타[>n.=!;#E]7 w M/AD}L06y`B +o@碹ǢN(6obEX:_O6.#[L' $ki-2Q̔4GLk&$e9o״l'8ihSS4Xp O/X:JѴC !\N;jCzF_s6uGY f{]VӴ,tu|= JtY¨!n>{x)Pv`Hfw/2΄-*Ѳgܺ64TuA4`2jjf¥ږ6jiejERؕƩD55MضՓlLYBH!B h$OwCx7å,(ژ+ oY%9^lve_f̘"NbH11i/5}yRe% DXvM Y{U迋wڔ?hg<>aУE V8\G5ph!^'(!kݡedrXSXfE 1[(l@Qt nﰻ`$q*14V2YBՁLQ2P) *( l} R%18Xre+yj?`p?EO#/~W"kbպXwpu%ǝ/ߏv+XZ^HfE D 7ig Ygvﻼחg$ae\Wg*;7>aiBBJNG;t7:jl%z`)[7տCϠ9 IJJOpG%9#OzO"Ԧ̸j4Ƭqq*>m<~DRhmy]b\!q ())\j+r/HD)R B4H$aY.Of6ňP P9 <_C4jVѭ:li#ivxtѓI SKM&PThc9`s[a@Y:B.Q 7s +wP/;8 *bPj|vćB;]5h haHeц-,8]Jb=vl6!=|GեEy`1s@jPGёGd+nR+͌,! 8X[[FL/o{)W2lUL뮍wuWNV*6k%n*wE76UFXikElc>s9h=^P u1zectcOF: N8E沢Yo0Hz6Ra!ROdC(<;հn^pԠ9yš$ʓ 5:&˷/:W)FHm-KoսؼVHWU!$I9[|g LH083rGI$"/7)'M$=Fa`Wl#kk(8LE/FNAdhkk NnSXlљP#i)0Grb)0> XFB9o1*cFQBhm^sKWHCHb$Yb&Q&dY 4c 0LC(&k`eŲi 0a!$%hQ,rE0%B n7ݶRF׹\, `Ц%e {!ʓ]sh Wz+ 5ŎL̃o,c0M$gQa`6%4We&T)`MH2*zٶ-Ml]F$pRPBq G13'HZRn G,J?_s~SwIO>_9}|_e򾧡g/ޏ^=?s~'~_gO3~OyE>~?7;_UMwT{?}SW|o_wz~7oG/}lj=oFL_뗏x}_~>/oM7=W]M{y}[~}w{o6syᅴv_'}yK>~|o)ϳ9Ou_~zi'7[y?u;^W_}ow?|z_~3ks4me[Y{9e&!NtTZfڍRZM6+vѢkjmUii*JMF0B9GN)ѣKbCAJ6X2 Ő/_On&ѻM<68G?a6'>4`4:Z8/ #;b+M2 ޡ޵LE0mDkM5Q;tS̝1V Z k("cZ0Y,tk[FG}s)geT' t0 ;-ICF[ͨ$@K\jS`ٶ)0:~xCK¨1x=?&00*(O]%Ɔ &!)4Aw.|dh`8ٮ)S)`gL 72c"QUa2@U 5 YSA郄'A :i1?[n&"I*jDyx|\O8<9qPae] L'CS,2+>n FDK9yӃJ#?EQiNKqO9Yͪ0m;X j"F7Jݩ 4S""e3ʪ29E-BPGaCƘLab\un#9(ʤj4 ՘Mfm0),cXް,7*(L"mT+2B L2Y, &iэWKg;DC҇8x3hTr@ SqBMYfAF3eaE 搕ɵ2708MCk0h,:APdsn%ȮqDrg#>#\kjJPݔBdµV~R3F!ʸt7Μ-t.5nk5 ZSM^Vͽ5C$0Oۗ vڇCRCCzjxq TDqDs#i U< ܷeTh$cCvm5V,e%R&:c0 ]иl%)XX)LJk8!,ub#:PEdAwq w~oTxCh]t:ҎbMz=1a b6F8R ) h3&^13#ǎ9eYPA0L@j+䰩Te+ W j/* xr[mIb0`Af&fm2 Ў U ?TXGRn"4h ly|?X @n}Ixv)"4,!b&i(#IjHhiKx=c(PaLן듷ݤX6-&gzrgD2'Scs-X /a8 ea袯 /F^`} _O>ާd ^j80Eۭ,[Hygz4(Qg;>#gލnip@"L*s@F %e陙W_BO)986:BӍ<- H0d`XtQ#h~14*_t25/iUd!@5#?Oq|SnT_{~ID=ָQgY; )T(JC &o%lmBYh\mÿʚ\z[+OnذO|Mp`I/a #$EtiB $Bܻ_uH8>C45ȊNY}Bt@`]}xwxB]'c,z1sD!|?YT[hnN ozm?oRX`{cN Ľko81rр0_bWSrFj4l{yvX=.`j!&`a  ~JKKGM./ =:l:}p& ^:% LIkzœ%( EAQmĨ4Cj"L=y"ICF;Z~0Q2HK,wמ:HHKblx^&k*qjt獼 :3\|{ճW _F"qŒ gzlMMUtpJo#%-Wg.I4-Nixg̵$`jBqd UL(n"zT([Ѣ0 mr)<Nka9S1wN#x |mNN'׻V^!聰X L?gPq xh_Qj" Tp139ݔ؞'.Q1xh:9.8  )FЀ&:VH`f:$dl]3ɣH BH`9Ḱ@D.@$З C.H:f]J1S$tW Sd)LT0aFOnF2B̔ 㣊>2y d@Q>g<&ff[xAr<$u#StX^m l"?)*4Jd-9t7zSذRO"@|ł #2Y{Q5A(r$v;f$C;4i[E)O2lG1٬$pcȀFs &atgkVOc/",ij~tz`a_HAŕ) 8nk mhH*=BH/Gyʍd\xx3=N 6+ ]|v:-ˇz-7"wCP]?>ݺ8u<<:Є ug9s y0s:ֲYW4>Jil 6vܾL$F_XrאI!|\h4!jTDh)t9 tzd8-یq7L'Л0rjc>99b C$5xpWG^\Si#Bt1]*'LZH,k%00T t.ruh5՝d;WJ+'J8=*o+(bIxi3˧_MobO4"I$O&?j~%A߬c\te_~#"/h .~_{QD@>{!^4A׼C;B6 o:t.of(h;Wdݝ֌܏]xbn=o}6mbG.#_W"aAZL8|?} _'~tQ`]ND ~]?Sb?1@EJݘ-4]_Vn4&5BI@ґ`W ¾?Lı!i)7e:%xds_`3 b \ Y?0LH%;P~ O2/c&Q7]hE?  q zw)Apx-y̤޵jΚ-d sl iDL DɄD*-Znc+Dρ׃Td! 2 f(0S(b6!Ad`JzNKgïS:]@." iP ILQra z Da+>O+|AiƲ41VD;>oD-fQcO3 (9@"U :ك2@>Ώ>.ߒ P1*4hVؾȅ)em8 5a-&XĻHr@uT%Le]UT@͙ 3XɁ kQ2`:YxVLܧHhy! e5..] ي{M/dp YC*H'<o0+:ȤHB$!0ܳp|ҿR,٦65c× B$v)cޑoޛ 3K30ÉKs莹|?U04 k%m@B@`7dLqaKWjWRtdGj-ug<O3:^CJ^ Ft`aER )L ZE@V'=Yz]¾Cƭ3RNBCn&JF$!{3"3g =(U4xbw$ $sΩcvRia?0>j?Xe4!Iǣ}!; ~Gi|؈_u"n6zP:6XeM|m򜞿~2SRJHPIB KN`(l+šz8y Cofg$-q*,X³_ m*aJFZfڵЛLV-%m6EQAh ݻJ"e\T*6J-uT 0L @bs17jVJmf؀2*i'u Z2<@ gE'N|n9@&0&8 x"Q:VAu"u?" H(n[r\UUaE&5 @)3 \ bşyFm臬~ڍZ,{5{"~:r= }؅pmF"޵ G(9@qנ^BJ<Σ#2)Լ.=B44(PQC>CR1RR-4"v޼m^U~ji4Iej^(`DqQG% Z7ۃDDlj)D|]p>dA uʊ7BXK0q7Zĉ#4ye!jhZw̔<鏶BL;Zn7zwPphRy PJ̌fju a cRC'C5*Cd'@P@{ NKe,M8e9QР 0 nc!QQXж={1P:$Ƹ}1ZeyW0˂eDaL0n2I!7D~`wޘa07@U^oNi zߒUOHG,ڤWGNKo?/>iGgŨ bq`aĎ5+0B$MtXwgO3*s6q%k-C'Y9lJe8Ѳѭt3b;0Ⱥ˳t &7f_BZht$p߭*No"JJҗg3l;Ҙ4uNS'KjݒlMW49E.J&QXy: c[P212l# L m,lF FƠрgA3FY˄,\;Ru[DD~(v eg!8. g! ܑMi>XA4Mşg:{Aq4u9v&7ފ*\-iLw@SQJ4yC|)HDQK"vݹ|?[ c6sw5+m vRh !HS p%")S%p p fC؈U&LU׶uRJI X#ozХ5ΞݳسG\6O~'aR A1ZJc+Ch,hbrBI$!P7Jͨz/pC(V[@_~|t:7՚feZY &)R>H)- Fr&8CaHכ:z6jbǚ\ŕ̥p IXnJvȋ|&tءHAm0jR8?K# lI5[M3a(bl#clf~g<?D hHPe ¨ `e]* >YhDiq>> ۴1Nv iX([CI gDL/ {OOvc0^QA!l?m>{trʟ#G䂬>h,7z H$r;J>N dp0Z|`*cրЙ0ph)7ZٶFݘdרy_8>PF{:얃L)nrOtL?zHblS3)UG@:1l^OWPa"BduEhѥzi1ه.3E[mо%8>1Fx{%K p00knmVQTdIaVtuh)+wODӳ=~êu8/CLGk3UPW` Zbh`ҵT AGؽZBxs,]Wfrt4Mhq)Ʃevn ߓ)0PkFݝTP4`h@tH;I4aƵVe6M*JG>blf# 6 )B .X8ɐAPLQ] j@8S i04&fsAOL|AH6D~E< .H?O>,LKj,X͙mEcTlr։9v0x-IbQȄXش*ɱRX*,k&[jJIlBRAf{W9BA& D$Q58 t/dgߣ='7%j"))7bZ p c?l=%߲+lv|4=_PvЀpnPW̻+$@D=$F89=!qLhpH]cU %Z7ی#& ܖ9ҒnVH N]k` $Qq>U{1p{/pR+ -xL6D7/h3{z;Uf3bt61/A=!̀׻^_O]ź(LRy~t˱vQmGp͆=k7t/l}Țs|T ?ݟ? oJ^=OvGeF?|H5j:nQq$cN0s\xKȑ89xH9pz+aLa~?~go?obU#- *_iH0O D"BaGI] )NX>=U98?ڹ22   4&661T"X}qGI5& CTƃlFqHYZ \]vtl84s*Bc /&[U]Fij<:+ KmԋְeI"Kx*i(=;uF2o,h>W~0Imhh*r9cXizMha҉-U'+Ԃ(\1!uW"Z ` 20g/GʫD`12lՅ8 7QI^0ό7q20 𥳐SWSP2dڶƠpůj*і |#)ѐ # bhVyL&] K @xÎɖ"!&Yz>y6:U3 HXU B, $j22Q iHGL)*B  DTXE(G]'_P 5`2(I b2ԽPnQ?#?ઁggCr"#~WoT'C #0jp@B5#S9l*T0szS/+g6j_xu+umG"<}B##-E1@2$Q :t/P;;d(VETKY遺 x/w"l!M=M?]w%~*#IBd/TL tq &y0P=|vC0kgt0U>#^ -@Z@@Cg1p6/×xkmK6lr3pCU]#;Mc49iOzu߻WHo%oqW?2t8,ÍᾺ)xX0\vY7Ci؍o<41@ ;B@7b7՜ iM 7m a1 26!!x~aB^D AC)B>RP>rm]5<"_:hϲ5Š! v\D4`%kaI_][q9xFdLq@C\q, ŭ^1Zظzq48lEM,Pܹ 0e;yŦꌘED&MwvZvR˪Q#FEWTʑ!m"BQ.S]+jMvr#ۋf>wf!Mw˭VS+u5hŒ7X`bUO@Q!;r]Wn$;zƌZdJ4{4eۨj u]z=*Qu%$:)t8+\d Y% Yh`SE˘X&ڸ,[P'@AHIBn]POh抃JLN[ OC B =nrxlfTޭ꽦C 0.9F=ApW{TF4ќJ):V<_@~sa+ D @QPBj}d+`BAd6͍mXD՛L`D*j"Op)vlBsc`IhA'̝2mT P9Ŷm`+֝F^gѰ@T@Oցvv1s⟄/^Cҍ^8P}m_4\6m͢ҴZ?҆ʁW3 fD(ȏ@q lX`6>QG7y(~ _z@{E 6@=! 'D4bScL@[bR[~ݾgN#!FDa,\8= 7_TlZaC6y%P(tUPEtLEqqA~96CarԄHqθmCT Ue7H +*,Q IhԮُ;0͝%FQO)zc ``WADHm,J}e !]QGWOb x.u G'=& wyz 1&'4"O- '>~Z UkaO) tyz&LM!,R *q܀CN!X3D9ȂM ϝUHA^PϏHM98dMyh䩺r{Pwy : EstdRА5F&Ý9| i]3L1A8Ynz&ԇQqB3N<W~;l%^mh1ֱ!@elbһ/-`Z7I䘏h`0oJڲZPLHȘClEanXAA@sc$0ST uvS:T:vǠ, IPG.sLyE$kf` 7{;yyW^|.SoX_[J v©=Jnc=qADF cH  c( g6@I vcH'$(Hdr*3ŖqyxCz4iyBv'taSԜH7ZƚTdyw]guZYhZ,I%Zլid9MwXM;TR< +0 kZT!@~{pf#[e(B W#|љv 5i3.,oVf6!Tylla!,;KEE>ڤM!4q7 BnV:ÊfYPU(Ӻ ϑ `7337H5- aHzlu̚ ru8w)v=}yNujTC%P7AB=RtYS1N^ k0̥0]8SLeH܏Werl3 ]}Yd5MIHդ׺ϝ^$cSlb2H$LA|pADR*~[[I홤T׃C  pP7QQAeMVeTd ?UqrEλfh$0٦V ݷ3;-i'7VHնR:rPVDjHD,̎_ L+`#>Ӌ)xq:h\q]zh|wkY10pU(F8C-l'ǺY*!6 ogp(v{Nl  Ab%(n%77q@U;rB^j16=LMln Sw ;#N{P R'_G#W=N M2ԧg╇:PugɈ>aS}z60QCXIb*m\Yio .]K^ovUW;v0T:%;S_L`dHpЛuT(d$cj 8dX)/鈞Fnnaʆ`qtYQLzjdv_/{&\DP:t0QeIji1TѼ>"g<5ޙ׹M' . !Hol~kF!A:v. 1`1 6lA(t}7P q $qDSkHU *kOC{7ej儥$P"Ses<|CC  Tʗu3v0U 6& ނ,4z| ETm.ts8g,v@¨jvcvxDR)>Q١&\ eW+3c]"g))H0c`t15Ir͊r&8 G,^uQ/_9~&qH^ 3Фx̥Fetr(5t,׶W+"6 CZp (Bb[U`m A<}QD`#CVprYI5w3g=KcT4_gl耈"> F/JQgZTayvz&0o (' 'Ue-"[Y$-47mۻɷW\ڱY-Y$ĥ#20Q PmbfWthSA0B2 @v3AN2"xp;(͔6&UcጻerKb>(M $b1ТQek8?: PCm`a˰⾁>{c8 PGhb/ O|q 0{}tp6ph5DJ{r$r<@g~{AhH-BÄ!?2(Z=Fh&I2LkwS-;?cx3^v%CEAA()d?p!E|/jf CDombΜ=)L*'y9SE^)83W!ݏA{M "q0ًm6`ﻼI28xKKnc0ݖ-fZ̯OPC{Гx=َ֒^H 1qo w0:wB|Ih~O1B450jQCQg3쫣͈ӡt44&mnnh*BDnsi3GI59A(o>1a/4r[X("H /ɑס$@pΌVt:D Je(,w`/Pj :Q Ӈg ɽD\D>?`Mb(!AWN&eǂgvVvt<>CnnLbՁf+&;06 HBš/# !BY!90``IXTmǃX9 bðD 5rH 꼫\I4iƈDqa/mHEkQG7N/8z=6;N@>&Y'yhS^/,/C6<5jAɝ1ŕ3hn#"֌ CEM#!F:|)AVch#)J} ӎݽIæj8bfpB1paxxjOD)K[<6܌?ɊwѲ(h e4l`c6p"M B4p A! 5VpM dV oɏD$tR`bF"PC{|=iB0¿|7 ?P_%޾R:vfP!,&Dy K8Gv³CꓧS,4 2XB唷d<\kLkחǝc/O]˝~sM^H!xH]@QHB ҉ъύ&f-'6HShti{âjĠdf kuDxhJ6W&Cvry a7L2xd$ǢM(1f#0Ř B/o2 ^]\2 w\Ck [f\ X|Xrz"^CImM(f%*lN,cj0ɘb1o JI)7 8ۮKQP)UTjU , gȮv0ڸ+PYM NιAD2gNY`2 z9.}F$á/eqbĺuwQVPmʗQRdrM05lj2% c?>0.sc3Hp #N%C!_I9"&,+q*}:*XN JY,ۂbQKFH#fM&dt¸<7GdhQ 85 (JA6kf:1av(P U:F`L] B8m4IlǂTB4ѪQ%ńm)MR ̈́8Z]Jv b4 4*2fdPQ(di,$#%DŽV hAdzOٕmv>N.6j1مo! e*]^Q9àlH2LToebs\ !hG/FHfYhLr1,v~Y╷lHArYt?e:ɐx@|Q*ǚKM@}@tq`]z.DZ&7"De,6R46dIBm&i )6S+IjYEhƉRZ!,5b2UTvvA.ŹCzUhQ.#` _h 4RÜ9ȹ/f:~;:UluODbUPúzKu'zz>n4#JL8P0 '(Ɇa`{DHMtvEe=XystUV5b@%`Y$(YGܑ͋YG;gE~M|; kz㉻yC0t.KCH1ID#KV%3ݿxzwFBF4DlO51PD${Nh>GP9Oj +1p芷Ppw7tbLP履"OvF>tQ R )%eP/P=!ƭsiTp:J;G:;$&k2iL( E h2NLF5qpFsS1cl18Ѷ.Y;AE=벀`dL&^NoG(m`{2Ny(uAM C@RPB93DXw L=ow8Hx`q$ -2ڲC,hѥ Xd,8A '|L[+Mj&9Һ Q]˚WTW[(ڋcJ]]UTmʁq $ 3!qͮj͋Jwlknk-; @$A76Z+[ m]vUmԺX>3P(64%eK50#IL J0#ZU%R%V IC33L54ƚ’imFS-u1̨G#AIA&6u7 A,Sk22KKX@@,cFPI#c3tdy\o|ӽ皁 SDգ"GF.b!)(F(L`L0b&:R 4V *$:@.8 (/*)@:z.D 25E)Q%u PD|6)t= } /;'h(N3 0|14dm(h|Y2a~oj?x"H|y:-;|1&NGc5gA-0BK/ nv1 wzB w"#Id^*>bTl )NǨTr04 u((y83ylq" D#ҮgS@<$>- c[\Ӱ`hwaD\Bdn';-Ja$N{@W@CWKF:+WN 3gv׸tfYiY+4_g"9D*ljUf7Hx"GPXky;0%s ?UBJcm2I5#!RU"Zuw BC™@Kb "$+Y$IIDLT6dk4țeMD !,HJ*'PBTҍ "FUHcy'`bSSo˞>^$;䐐EguI !2 Hp"l`1>RPCU/;EQP}DÁK"S8с&dB(;ذز`_#vi٠>H;*S0W߸id1Heh!!&bH#_/˹=Vz' DNt8<=0+ y  PE;?x>k5yYvسfhmcKO=&: 챙3&oͼ^oqQ>Eᱛg-IAy)62'JX ><dTSbI6yMKkM|5 HyV *2P#37Ax=G@C() ߶AOR˔&I)c8bbT'e}@z91|q X5 ȨI85NGC%L:anӌ]3OI9ljr+g9z6?*,* -XPa)w b{ԨAD~1Їo>,bfLfZ*s8H<`K22 &,vAJ(,1+$ H'0CjKqG]#7! L|2 )`,ӄR4 63EE CHa 4$!"dp+ D*AR%E2IfA:s#M"! ϏoyXT'Q5+d)}1}!`v Ѳ_Ij*7r/UҶJ7۫'L›,f<,T :tp{+mn#qwbbYB % %wl0{N&piN3q`2%I`Ax4D~>5ڣmk&ڨ46&!Z $%Q)L qA^\%$xzdzPc= ab̝'A6PVJ ^ 4(!*$T2>G.Nty "tʘb7!Z"}RP~ q'{h<1@~်OZZ+@V +w{*wԠ|֖[kn..Eg;h{IS^`ۍsZ:Oثr&& mb:PU^## j$ 4l}CgK ) =<7vbYqu{ȿXMa4擮i3_Iq'/ zCJUۓe=s]oIy;յ9?0yɌ\ @Ua=<:M*%:l0fcix3[@dTB5(z3%ǃ0JZt,.Ke1䑌a҈}Clo: j̘06PF *Alc-Af392&d7 2hDc,l˒Ѯ6l2;rʂp' i5&"w/.сr3". .Gz-{x9,#69 vgˢUe OK<ʦc[F'RM纏JP?VX֤>r+*Ԅq22ApQ !eL9kg};n#O~y̰_5Gc1**5̇08u *@M;cT(@HG8wh UX5C eo6%h4D \zXe5ETt۩x݈X47BkJ>EPl |UxolVܶ-,c`5pkZJ/t(L eYs9s|X+-@o;+}8,4m ulC:pא"̞!V  D HXgf;&rL0z&%X]E=fS%xgIh4N@QyL p80^@iI[l0uȄ8<q~2w$HY0mrHs4i ) Jg)sgg5aTUa{S,Z"SX&;4Q.'f4kAPTMCW4u2ӏW!_-?>pؼDN8xZ ӼGPՇXI)VbZ"qOrT(j!`t*JRZCM$hQjRY6)G |@@!a#DjhCp{_4a,{q< G4PD'BD{!ևe]RQL !!&q6 T{eVzn<PJHH0BGgu3َ|A)2q2aIg.謦}dkǮ駣 2[USE/~օSRpɇβ vr Q}ři1Wfy"[eb{ejh2DH=peקcwKKBKb2Pn'fetcg8Ta w/q(tSף -J= NIdGcy ײr'Cr~*X#9ktDUƒ_;a89Ψi'THbA"8B/rr`I4uUMcoک>DkLH H9M\ `D0xe0 a# gYaB8X" ?y>)n>(f?A!& %䔾70&(I<*:tC$ eD) "" f!if~ϣ76i1u LA#w.,V9(Q؛1 BRW]w綨3PHBd3ti ]ó>nhkyЛ ٜ#%hM Xtxj蠂48RYE WçɃ=07C#^."(y&c4+$ j;'"{8? ܋Q?h>fboDv%L1Z[ ZmA Qi 9Hi]&,$awRvĎCtQ(ŔX_wHRM%MИ3wB(XAGPP"5SBUU`Y>/i2P[[`dm)C8/4p9Ǭp"@o< ٘ LܼX !2٣T*^33_,Srq6-+Fk@tXIU7| 0+Q9 \lӶd6*I oמtFE&0CQ^خw\vdߗ(YJtfMhI+:ɱ59#Юd 8v y —hq{Ke,9T,1q9Ci 5 XnU y1Z1U!p@;llQ-ШCerAMډXWHMa7w": ACJlix>jMn^_''%%V& KKZYmTPb[ TD5mbA)dU!lh*-£K,X`KMkmn,`4~'f3=r,]ƭLdaH]s#R$9f6#A2J5n0WYwhY*ʣQ+FQf&m65#-R2$ʊ3(қ3Z fcTd6ZƬbf4mX2mQmTԵ)kHتKcjiVI6!@&XFfxBJ`~v;(*,'%dlC4 jk 7`3"% (jmJS.+4/qO) ByTU}6b1*kߠi6b A[,YFy`hq7fאgD8G Y#!`ISCmLcXU0z1"pn#.AB"`+)%E*Ui m4R΢ݚzfG2DbX80"`e#)Vn岮:CfZk 4ɔ|)+@izZmǐ"jb_T%pBJ^SX% KJD KIڞq#Ă:O=|%AēBвX x "kpb NtAa)B^0zyAI3"v6ުpZ&lQlBPkQ? z('>Fd!:D- T>G2mFvNsΉtd(LLm#N%Y[^>?~r@ @SД {|E`dvQ$_iL8=ѲOH(xrPD_ShtrhrPԅ+B{REֆXRBo\co_`MN mM-MTQFUk,[&Ha%!Nuyh+;>+YA<u9'\N8 :rJ]829΀80;0J xyapڣ{ps<37D@\2 03_}mã&q&>Q]ÜV9)^̨?NaezM92@Ůr7=W3LGuOth Dg+U80װ(xybwEskh9| ȗL[e8,O!jx31[DRiy f87F%x9 PV,S3 6xRE~> AhC05xFEf3k(J}ɝ<|y;:6@HאtcUiajvU ;&+u EY<;_j622M|uq0ḭ̃ŋ.8((S t[^ ){sJhvM1pj]5z=x.=Y2Yƹ>&(azL۴FJ g-"qb,:֖PEtDyr31ӠUqZwE妘s=z}|ՇʧQCd)PNSlPg $qxLbItCo#| W(3m#h] ]IG+vW BJtF bdreȠ/,_3dv]r4QH?|~]e:uKrH=I $"2 MZ! VBeS I1m=yte3JjS%GuUw-J]*HJi@[$a6x,aEe^+R ^pfHT Ysta/˄@ñ v].F7DcXeы ]ܮ,c)zzSkVΓ,֡V;ɘFMNA5SY3 r0m҂:ըp#_r:8ih%T^0xE0$);/^tiNn$* )]dYΣ}5|pb ``uؔ]Fc9Г3u ipW^7Y!TW#Ƿf,. f >lor.ꨠ]g5S]zl#@h$w{]ÂͪKi@KC#,i?#"!ETHK',6 1cE3&d,F2 0t04wy =yzΫw9#/=i9uP}'@LQHDՒyYoDMʢ1ťVu̧ ,-[?+ϧG)z6KhL(Ĭ{v69 ;[lQUwPdHDfM덵\tRCv˛X6P'\;v[|`d Dȋ"a_#ZB@U2g,%~T{\8qĀ#Mo XpyL3 :%fWi !:|??@t๶ʑ t}ߣtfb~,ee|(]]10Ô:v! &4fϐdeP^.,. "A5h܊[B.nh);w;>s>9=_γ5Q2@(TQS ov4>hmJB12}(XmEr8tmOڴt/u)ɮ(8gbbTI~C#J\MhފXu1?MqGnPhWZqk㊆U_b~u#e7&ǭ=f bv@|n"amՔ]XΊQ@)Rb.AoSԑn}n65&T/VOMVY"Cez.%M6$+} -BuuoWa4BFצCT^=` (1$̃ lp_%GUlS*qˬ3j(8Txb۽c\ow^vcH,dKz,=ejxV.aM0Kd6)# veL%+*i>;0)Ge6Ce44VGVWo}S|-bFA8B8sy-R0s~im#1 *($"/B5in\kY/V2$-PiH7eX;{ +A@5KWVVV}@4f狋/j|zo\,:B2A Lbt$i'bߝMK#۰UQ#Ok"edc*ϔ4ǩO@O_(u eshWHn+ģeWl[1߰~k!^?5S`۰#lslj4)4摗2D!O, ׻,AV+Xv}+TR7ýϥ H0Ifwώ+=/ d:##r4juU9iZ(~_MwJ8cbKCͿLi?@o6RCGʪ՚T*ygDHk|HpУMC6?ӑg*6>y7}S+ҟC,JҞ'uF^jA*Y̖WV t#cÿ|Aj|U+\%7]li/mx{ P>\+Qr?9򒖇X)nOQJ_aNDd)6tewo:5˖%ˣ 2o\۶ҿ.-xZ1)<%  R -(Vsk_NbjE_5Tx8?Uٍ.7pp Y!N5CZٍA2Uɮ.˵8pDqDZ2 ;p} QՌr֒rc],sZ欇V[؅_Zz7ژBkL,^T$O95o0F f:aY> xx,9m*GC|q NM6-[ /gAsT`ՙlβۻه}.tjupİJ VTB$/U.l1-o=wS2ZWc5  );}ʛl*S"T~m/I.+`nLo,%x./ҩWo[r̛#q$'E(>]p]MTxA=igeӛ;+H=h޺8;-1ݧMݭTZ"ȓHW`q_ ڭ" UwqT;~|ve)+Vdіy~#+5hp! p$]ӏO>{l(L cѡ ]mOQI'f BKU+YgF6N-(%rV$}o{сԆwʼnzMp߀,NE]-QS۹_Mٛ޷<ܡ;fI1׈ub}HP^X8Pak\$ ȓ_h` V=!; SAxl 9 U(rRJ,FL%퐄H!c6:J$Ǯߢ+*@qY}s"!We'Jv4jxIWlAt :~I{Ԗ#= 8pYL",7w3 Sd/~ohߊd Š @(* 4>tДj%xT|O+=. ZE XEoLm0Z;IS9,z/w". =!DP(H{7\ϊϰTn jW;+]۫Y3->;WT@lIv< {O妾|Y;Txfߴn]t%kUB }Gw0??E/<ثo@_8Ɣ25,6{/jR8e\Mbq>6,X5G?8 Z@{c>Nh̅9g6rppdcBG3?5[wao.Xg(jD~9}_;^j}lDJMX'iS6%j:*ScW5!-HMzG&s$)T8(L 䟄b8KwvH](vCyԍXHUIR+N(.b~ m3C{nnv;=o! $O0X$b dƱ!vV|[T~UrVsǼ5Yt,-e'09 v{|Z^T@Hp5D"g-Bnh@U֒jKig+RV/7^V .Sv đplЈdaMaL}6oVu ^=NI٩Bdt??WD}DOJwKMվ-N4 퇔qT\ |K ٫Nȏp{Sl@"NGS5y[Zp{R!v)HSBp\c 2\#Ux&؋=VOhX%6̸^c%fo{Ym[|\_49;/EdFsrz*K,kIZWx;eMF"|L<ihʭЍָkZcnonI8ys,T0aU`-P|]&9aߦ@mrp51ͫyLť76%^d4aCG%RɽSphOhpf#Lz8$kxb轻mo;,Cx+?u&o"k{lt#p'&8CtL!-Ǿ^:.6.GaP}3n@ >'Q}$O@uW(9{r3ڭ+ƴez/XPmYi_EV h[RZbr3HaQ#Sy #7,v`/svO3,]z=N&Ibc2蘣fyA@׺!ʡT"enx%7eiΨ19p0fSk֤ө|j/-S;|o*zKyJ|DNHϥ7٩,qw8_½.AU|+Տdtm2CʏenKJcv]l@H3[bu A89} VJuAnu~MQ>ar -S@zÂ);_E4UJ%%E ;'} JA?"-;"k7Ebi γ2Gҁ  ֣1śD6Z^X*1(ϋtB֜wbJNkZ+ao>+kV}^UKAuҼ05M&uʶwc;h;EW=| 7'*dY(=XiH`Xw9ӳ '(\02pELRc?q>s[qR ITZ6$IҶ:8G=c?yRo;{$( !@URF!?g Zp*.Va l<'1PoW$ jEI:C:3T&n_(QWXH*ĺw<?A6$J@=WLjq9f ;,pqt3Fs*rbtK 6ի 0\O~'؄*Cc9\O~>4? B%&?o%\d&pͤxvO!Q J<1$S&$t}s0-;@ cz tdƯ3ǰrzrpkMS`_})h=s*N`w2_LrϽpXcW"Q% ~ڗ]qlۿ0 I&KL|\o=y0P45 &> p)ʮBN@aᵫh @q?ds3+xJG [1/G)l /[ cy9|X BcE- }x&ephߛ` թKMqa,b oB"Ps*}v>d'.sE5Ҙ%ϋ&Wjdم p 2{NcluO>ͦ+!zq&i066\XqQ3D"ՀwQ}XKqy&l4$KaE B}tX!=rեF*B%$90 AzL>ٳ:߿>lĈt0\քf4oXhs{:E9a[9&4cR7<Ɵ4gaP{I= ,@}#M@x(0ދ4H#~H9? ɬ:=HQ#oxG7֖wP\Jڼz$N0S? _I$R2Υ/YHke^i(HC(n%`ػ5s ;nj꺀J&W3%9d%hYQ.D=i[އ6ͺ*|'K䋦~wRva-{Ngh/F)3ҁ6+ ֬_Θ^NIEъu@< WU99;]³*M *} ¦P!/ZgJ. d Jе!WS>3֜bp9G}[ }ٞ[%qB{˚YL˶/CR,.6#1pV%޽/U"r*@Nry2zt$kYZG5L&uxzє]!̰*a#]> 0j\@J6>U7f<T“ф~5clN:YOI:\Qu*:ňwpqWc)-5V!eSjwwUtOS9/H,B.gp#e뤪2o|TA"rFBAn5 &N?}-v^ȬRER*!q^?JMrJujz_ݞ'^:`a>z=YB֨'*v4upJTνM2{ XFM*Zߩ4,VJ+F  ;/[GnLrF) n*Nw~ԳH+ c4=84_^^l>~-Jy_8A{*Eb ïasݴӸG/kkn(\= 'Ђ$OD2qN62"]U Y0ꐨRbBB'#Pm[Gm*ͽ2ߵRlB2 hZIƎB]y1Ї-o w[ Zt>"Y+ֱ%h>u{Կ_M}u&iLܸ֧]7q\t8:R88[\7Z\bO52%lbzoٺrj M Ej{-^=ϑT)3/전5qrϦHpIR%d!Aa*vw)v;BHM Q/r*r֣FX7X?!x);vB/#v"+ȑ=SB^bCN5dUSrj{M75ekYԽڪ݊ {F)88YepY~b-) SX_Vy[̲{G !%7N%t75ODrzGhEKӘ06~R_U4CŽ:}!˲N`ݾ6k|:J7 -"=B VaAؑJt')iB%Ԥ<^ `dr $To; mLλ\ 9Y4_bJ0ɍ`h ưK?[WhUdv\۲>DSu=j}+sMSnߦM|3`$?R#E Gx|eQ{\ẇE55.뎴++^<2gPO;#˫Uwiɩ?~^隖1tNo~0 61t^?̷QEmrc4l>BhcOD^@C8[}>rn.+6`/=gE$|BUr\Bry#:ӝӿ_Jf:e1V'_qv(pGu/uT?UUa'n1鋄 {u"e`Ede~lP)5-lkn&\eo|})SoZŒ'ї޷9,XXJ7Ĭ'ܕ5QFO݇...|FXД{yL*d.U1qs~)ӃKK+~u jWrhXp^y,pcbc[]*\k؄׳#%TrJfmWQ700R.Q+7roaHwY (&͟IOBS~~TcP-u֮MBbٟs.ʧqZp.鞡]g@Бi[W&1c5pY1*CjD}8 ֨*o)c5q>{&yҳ;B&uù1$UV1\z:g?Kom䁑c7i@ii&Jp,;>721"6l"C ^8y!MnͷIO&؃oG}+ݴ)%"c)`J_|ݯe_߹@ƞyG ll<`y߿Jf. :7p,ÂTX転J>筤$8+D~5'2Xe9?N)ΥږgHXw3='fJ1)VZsVeE06 Vȇ Aozh 9v]ÈĊU`ۗ+Ll+1;31`|ϧݜQz_23-^4;t٪DIү4ݍPAw.\dO9_ 0DmúD,@UT`C8deȯ 3yac$FZFYR!},תP,Bm6' E9EzmQ<o!ӫD4rsz?J߄(,$õ?l"J 'n[NǟDu*fv21 =p}(a bael.n6~g$&Zo5< VmD.Frybr r"{%ӇEp#DZa`: c!ZgPS7j#{Qa#RbuU=ҵ4&wr.owR!Jێ/:}+@/MO9oQHd|躻wKTn:*9Yr\'t.RtO;Bd| l;0(97ێe$596s{EDV>FE~kmyk~T~ D/$sϲ-C@\@"qtFC?s__?>F HN7Hp^֤o>u9lۦ/Tp`Gw5>Ajluܢն5T_ieɺ) )Ѵگ[s9g|/Xw wkSݴZ-dstbp?oj[Av>]-Ѩm7r^%zZ3y=d-m9م%O n0xn __<=ZoB5mzy_{ߦI7Z(`߉)`{; *]sxb|̧Ws,wu[[^߅7[1htKlŜ8Sq%ѩSKMZ?2ne Q4mnE۵-!MgCc6]|q̕3I7js$_|ֹ)E|1y6ƼOw3Z>_F$xwt Hk= p-<<m5}̸ o/α F_h6o]o=vGWmĵvn꒐mYmmvQmg[귺՝&iwFũF߹cݭn9wFz-Tz|cu}-Y~j[qo{w]q!z y78P9 İJ1O!"zz0@ZP2ͺVE&}m<#=]9s絹_}Dp~'p{ e'$aLz=x$hp=Fwd|D;> iu9Ǘv9?j ʮaCJb0Ng-:r=ÍVGq6ST i{q5sLgඓ%{a?t2_EWα}KZWݯ>Hlmr?D,5&/S+ ܐgQ(ӥye0ifE@2& @EvP2(Eo8#fyPXlyPV.P6,“#D, %<;6S2xCPRZ0&[Rex{p*OH Ŷf`mʗ}X:Z-+-(2 E̹dj2!$N Xyr.yC0bGC=DonC c?\Zp橕-t ~4xQ#/m"@ĺ<-aMdqOcŝt9&j^%f:Y{,alu*XHgOu+hП{F@Ưx)W--ښ4rKof5R^-1BT*Ԧ׀_$W/pI@ )ծ]˿#(ZgNN8TL_Mc e*P(Gp$PNT "Fzy*DXO C: O~>٦0V뢬/4_1عE TIȔsPsʀxRu8u s`>& ]۟SUj~Fsru:;8\ & պ?c# 4>QBcQͷT\Z0[Kl 5aj~ J+fK$RiQ၄0n~ U71g=":뉁Y9AV*''2J2Y+ƴޅ}fmI|8kO\^#"g yQHDRyͬ5bOP_ҵ际OD3ɡg֬c'9aWوd<Sx,/*0Ƣbc1Ul֛Ћ<04FJ !5 *c E}IZ}e!pma-[C\Ix|h;erٰDAth GƴjΌtBA}= # DoՌ,@"7JuDOT"Kup,Q`St`I09a)L0ʷB3*Ec&„`d; 6|I\lJ$P*!\ Ц)/J qb|VX)n}|^7gPҊh48ͱ+ZjCE"SbJRcX) &JFi>=#$!!nTR!`zu/)*ν>")B +0,\ۻ/5=<#dF*])**؀"C#Z}\:ϓĆp0|]'C:-{/1%7̕W;V̲~ƟkWgр2Aܻ饏7=| Ur8_QD囌?\oD4͖D<̭m:q}9LF<&s7Vq%‡ &,V fK P(J@pҧdQ&D3 e:`=G]7O]9(<^AU`+ .A10Z!*J!6l%y\|E%AEiv H(H69#ENOZB" **`yE<t $J#Ǒ:eB@妺vBBPJVB$:DGT^/.c0#TH*%%q`sEeqqqdP(sD:Ij IS`h5uu0>`g^qfA0"Ӊ$DPARTJl% ц t(^(B`TTjaCUDH+K& (TD'@ؿ)bFJ"%&(H))" $$ Be($ h*`Y)ZHi)a $@h)Pi)&)&B"%Xd"X`%"f((&(iZbR*"bi)j! fT)`&()h)IQJRZF B)bT(`I(`f$IH~_to{_>rkfRT@DPP4U% Q4R- PQLU1TU 14čl;E-=FZ(f5P $yix00J @AI08G8aI/@yTy(Hx f JfJ ~r}e^{̊eӜJ (a7i@($(+pPdRD$,DLfUDPMEPELDS4DLDUM3! ΥKwkV0?ÇnٸrCH  "*f 0`h>i2P >ohRF~y>m V"¨*1 hH! ftB)2$(Y!*3($ F%2/س1€%"Zj$ i!bfI"i*"bZ $)e(JX@!$i0xA@EMFS 2LPM44H T1-A!2RPL0Q42E U(BA@P3*##AHDDM)D,LQZ`bif)&(('0ʠ*%*2hhJFbjB@I'a2 JhBI"ZT H)JGl&*!( Ih&*Jh (&&*R jF"R(j)&D ibH!Aie" Jje"R! !Y!hh)(h *iZhbi j)*B"$fI*)i JZ`e *d%b*"H$(%H %Q$ I!*)*h"Y$ YJ("$)a((*$hJ$( "*` "iXJJZh$rU(0IAKJ-@ФP5@4L CM"LP'K%ZbL1rB )CUF %HȊibh FjS f` (H!ʙ e" !&(*JdZZdZJ)H !$!&$ (YZJ"FbB%A(&!"IX%X% hVXI )dRhf RI`("ib**h*B"&b$PIR@X )V XB JXJJeHJ P $%)*XbH%"iifedj*PI(NĚV "%"Ph& Je#,10N%)J)JR P+Q Ӌ)LaCDUKQ1EP4aA RI,MAME EB 0ԕUT5)3@0JBCP)UHR,$TTPБ L,4DL$@HI2A3LQD#B!0@L) TUJ)ERFbBUI "bPF(Bwl? pҋ !irI'Ic>Jqݳ,v0J] }ڜ=+8v;s/WhqkXJdGuW1I BN#(t=z01OZ*㭈j6t, bjQxLZuΒRDE{7w KRf4dta œKt@p.^m:n.20Pcr;UPrDl><2<Ś]5Z&.֚ᚤ %"Yn!:dwJg@LLͿ[PЯHo[Hٞs>?t{9h|N*Cbj0QRHNϕ+e`I1b^RT7'yYq6;48E2C&7-G-`K aH;DŽ!a!xqxK 8xΛ "I*4JxUvɏ${YVRQ|QQ,-!ls 8t -Gq8jwfdQ"8J9Өֲֲb$p,vBpPŲդ:tyyób @WLJT4Y=5Z!t0  &2Py^n,Z ,HWnXJa[Rq#cmf$a8e0 foqH[.62o>7|Mk kT̫=QN\)1.;!$6N<#,+cS9J:TIfN$@DhsBA79&F%EI噞a0/L9sȤC *LHFΌqr'W#ᴰaHirX$&+91*( :]bL23{>@*K[Xd̉ZԊzwk] f-ekLSYT*pOhqRZGT᫓9Z-m6kѾ7M$UKi  C0t6.4̠4@U4RBA$(R%hJ)JhNRS%&CoH=PfŁC4Ҟ@LViR+x}\;AUCQICGvϗj'm(m|}3{k?-TovZRҶluNT'5J4 >&&VKPօ%M ?n|Nw!  ݽx,!m2и)!E0i ;o(w.|2<,V|WΦE3 ̙*v^uTFQ!R'C<ԇ%yl$a-dƮ9NV-fK'- Dٕ(y?Ä8 8 kf܂DPΙ2H\(kr(t6YZQƊ2!*oӟ~ƫW~Gk+؞=W4Ϊo+ h{!rv4c08NrCׯ34?_j-IV&X\p9HXӈg jB11ٺd>G^zl?H[ki&}P`D' BEԇg@$~CS^l64ѹx&e'.4_H5hvP;,w*;ӧ*2C$BKc˓-D33\")PCMAGc$Ձ-Q݆ DFcPRMj i066l5:bctv(8QQQs1܄xY#QV6 0ddL9 N$2$0`TH ־ZCSnlMTXTe JtCd\mk bZdX*k12r6:, еe=Z0 &z:kNޱh1f*cRfc{0HHfvaXz`czos!!&2ɇsCIW% %Q5DdV8RwD<(P(f2CvBS17 po(: `Z4h ξ*F9 a`fʦ,$p j2 9Mhce3Gl \fVeNAF%Dfew16`g,8*DlaVH6X05DE, ("_lmN,uAAMIqrRlV'.GYY1F1r6u=(h$ڠ[ۊ=}fqϝҶ;46BƛXSy8Hs6fIE,Q$@ ADCLGDdz׳kUG%\;2x{aDEHtbޭZ\ ʊH+, /\p10UIDA@fdUz/:Qq)'vQ.iƺ ή ]Z(4H=n3)j$Y~hbX\cr;2A >]d(9&L MMC!JOz eiiR624 `4QQMA_e+dG.0!I !Đ!"O}ݗ:S#2(֠ Y% FZɾv; N%p̣І\'  `* fR>8L)R)@40EP24,J(-%S@P(RđE U#TY ( @BҔ4RR D!M I.C Z'0Z=HuJ atdda8eLFYE%4?n6+0@D0D4ECCSS$TC A*j!)"Z h 1! xCƫ].K/Jt$QD5yfPQEDI5CRfbwZUji<֘ "ůI@ĥRU_r*hjI)/#70\Z(!"(hJj30#4U- M+UTTSPqRD4C33nޓZkFe)e0Q1Q AHDLSE AQDUD ',)h!(( j(2Ȫ*`% " Zi0f)")i*bXaRLUMLӎ(j% &&:XRAEaGiƮsp (%݄Q4A5U4@L51M]1s!(&R" ރ&fI!cv5UPPB4DRM5CLDHTLI55,Cb"b!& )*"*i8̒ƒ"d#0*"#380(jD2jb yTTDsBDE- 8I8l};j_?6j8ʲWOJٖ-T:HE&(I\a8.<_ϝeCN|zbJYGjHv$dEd_,(&W8$c9ي"E5/J ѫK8dD:;(uMTo pE)_(`}wC2Ah(;KKp&}T^Hr$ /jPX|cΠ,Am_qiRNU +)rR6fbkd~ 5h0t FF?-G\,Gm&J%xrO \G>.*ؿ>'0ۓ1 =QYCVN>g-h%;}!Q3Fiپyc9:PɍMEՔY:艮S%=ȷR2>Q;у1"c?[Cm%ŧr41 5a6Yzpu9I3O(jRV꽻f [7Q LE!>Xdž҈>VG rid\?A 3Vr^Gc^wΞ%T(]n%bFaFoф É2[BMkI>浴#_Y?<;ᖸUxm8i2Zg-oNZG[_.N|}9A%!˖nH7NϢ֨?SU&[\,;6}ڙx2W%NjI ̙OITNG?ևeL{(stfה˛V,5ɚ CY@;wW$n*F6C6\pYsɒ2cq'C'9kڍ9 %F q}n.LQrLT0|eАR$3;ԚnyuQAg%jdUsa{c۟~\5FÆﯬWۗ1<k$doxu6mkǛ] cXZzff`eYzcG];rXQEU彜@H ل9fN>^VΈ&t׾?^f~+"$]FUoϣdZ }aɨ>[(۷8]5ZbեlMf2FL,hgH`툚j'%ԙP槛o[} }NLYCGp rͫa& 1wS3>S0S 茥U6P"\Ivg?+2 t\(=M>|ךӫe8j hww[f¡y54upi_< 7F:{Ѐ`IᄤSJi.x£?+r? @k2ITg#$J-uSSD g\(8'#&jZg9W~ z(!ةoH[5Ll4\۫Ž,(;@w?$g,&(exNTcz[O{[}raUS(XD4<{aWʩn :\/ "ji9x5M),񂄄x\c="7Ae8釹 ҇+n 4[Sx?跍醡醾gUclE0&eba r?5#|*oPBDB#ezy+lǫgi:3.|N뿐=Y0SUKHA|x:~o_]y (I~G\|/>(O5yL;_H:H*B+N~(*9\:Î|]4 D>)D9x-SE4?Cݽj~wifqw7yw-X4?L7tEf% HpLڮLy,;3g˷Z*z?Gn6olcFb`w᝔jז#^^o_WMiuG]G.{Y]n.hQ,sO# :D47Ǧ'8]{t=x$XO[ 7'U81ֻ5|ԊlsfaW7GvqS&G?yaX4YsID:ܵ>rvG x̐2vbi۳N\&=Rf^olHjԔvih˵\blgi?H5TfhO*p@*mߨۡ/VfZaFwb]l!ȳKmZ]^cQKga*?f #W.%8 o1{f>^x1wOɻB/)L+Idڱ-h4h0ʂ:Of,:P_cx[ KD,,(\YN@LGW̕soMєl3:<[SÇX;& &dʝUZ\wAȜ1@{F 6l0+wꋻw=\_KeB?Dj@W 9:Mf9q%R5gQߎZ 8LGAk2KVTOsZN:O&CezMW6UuAFmA*X?[,2esv)*oadaza6 -p$چ[_4n%%vAY Qȯ=yḺTJykZ@A%4H0ՇFl6oo:2L59TXŸn~rk(CR~k,8:ag yKF 5# %&LMTH؏ɣp;8Nb.%@[6mIDd^\\2us~Z5!wSk\8xѝK:DDn{GIM2V'^.56ri܂8{OgaŒFRf͇|.H&Ι 7 ) =>hӼ, ~VՑ_M?/:O>w@M+Ƣ6$hF_jP0IQwO*[םT@?%R =i<q(P\z9pg~۷c!-4 Ml8d#Q '!> CCu?/>= 2$@T 5ADB` 4 J*TDOLk*T4!k\RTT(f}˥CT2~%@ ]ΒVc@{(P4&HHʺ3 'h$P~="J"?a<~>Oa|Oשg5c$^>,v爓7QnͱeLhfC'ZA5 Œ ѡv_cyrMZ-'a(vEN=3~"} Exw'۰puosalzf3YuwŒNQ303x?gL8{m4?`9H&a;yaieTCʏ}*c@QNc.joD#]c$YD{/vl&X_&es 38yDs}dmPPg$\c|t%(3\X4>*5׌=Um Tٓ.n 5@x7qw)l}˚{Dz)`E:J('Z(Z@gۏʆkU @Lhv]4Jiф|QđD%U4|Aj#^n,뼞 >엀r6Ǘ0Ll7{ʓ N1 %AA{u_D:ȻC~+Kz3Og4^7h+m;gd8 XqDhjVۧǓlfdC 5mq?L2X@׫kN#Eaǡ/>ɖ6ˑ(t.{]xqd \cRd'xƗ2%[o=WJQ`p? 7cXu/D>6( MGO9K8˞׊x5.+7QPNњ\"|o()-Fٚe Uͷ-tj;m廯2NP]4m Xx07YI C9!1<*~ !4S4Pc:1|zv!I"}OD6/ ND_:v 1MP5 ޳=g] !~]Q|(Ш8_<|C$Qlj&Q mof,8/ߚfobw pCB9]B}6YzQTZ xaJf: BJ8ho0drVAH'QJ.>=αO0"=_(;G4bEÞᮧ]U4uK< ZAcUcW cT҆72NSWTb$8}.nṱȴh?YWunAnH[qђ(?4{+A_ ]^%̗cl=⺖/=}[ei&3kd?ō1b\2\uwHb㦺0&jQ֚ 3|wUI!% vs')TJ쌭G sH9|w B(:{<7GC畫m"[s iU*lPPDMxnp1і$YcJՙ||cr|:氜+h`Xe:\v`pջvjg4@x¨9,'[ $SsPoir U5DS5PHCuDr ;OjVƶo7m cb zsқH v͒n"zJvk=w X([QF!ekS1|ޏܫ"ɓy38]Mסl"5cɑ3`sT66&䆎eA"+r7p Thf@ N.:w`-<5 ) =68o+ܘ:xs^,b2WDc*0`&`,t?> |roe1 ֈ;fŇeA)^q4dU:*ttUKb= e8+7,㖊& vݗl3stن?h^'âUfaEh>$'sk"$puABIʘَ}}c#7/rwVMʒsvlTGte5q|l9H1v01 VUDZuL`j4  {AbcEE4fw4ح\9'}ð]]D)B&D` ( @@q"7!ө_C3gS.SUH4UR.1$ v*!-6G7LMkp!JR{SDszWԔSd!;vukpĖ߲.J- :>pQaGN%QAL Dn#mӏuX4i@ &q۱ 'e!xZV ^N%闋qߋR_@< .9Ȁv1_7R^ _܏V4E=\i=%"K397&1E /%js2/nU}V> fكP{Գ_MKo6f5Rh[Qt J*{*bH={>{.PA= iW\c=\i[B6XLn6+cgE 1Z_XtS^T- Vt](l,֊1:srpjͤ* Bخu5d>3 ?t4\uG;i.rꂝi|8~K:VUa4`j>)ɠXllÿ-&p6m7vq 銚D7A D;j(!D+`szu8eE6#A** ' ἅ " rR" )BT4>&/5J@P@I#7X(W!D*1l&p ~ X1DBfSQIK#;;IPQ9M}vya"H2 YSx~Ot!#<LzP꼦%C<)IMLjtNK;PQDMѢ$S$'[W%fy̯,?tSK0ބɐ3 b(dJ&谏>X5s`=o݃\5RSQ,rHt==&:41QKLTDU~[~a/hbzDoઍFgʛlKF>VMM4ViD.c{;? bGOeqmvΞ.2Uƿ-3x1Q+Cpr+}9(c_~7a/Ԛ~5JLBD]xQ~$mg49 ܯ`E?5gjoSt}<ђئgD3_c}R1g\q0'h':~^R?ryPQD#tHGZ22f8DŽ9?/P8hNOx}u#W\y i{+nWͣLMt;vcs7⎰)\H#HGw8h_ }DGϙAOs2 s1*i⭽ wf$HQkB))^~i z #g$vz/(ޠFyC.,&D=+mj+p!?@;Bb) _]9QN4&Uy @ܲ[Li߇I 1104 PEWrk{j'd}4ᒌV[NG@OɊ 5ͫO'#\/kW@jVl# x1Isw! Q\Tv+88dͥ@8lJ;Sg8b'ze̙c喂%%2j`B@*a-]&柅d06BLig9<o* ^=rPG墰pGhWVغ-mY`{{0f(bwyςп!U:a^) Lj2qAOE>{7'n=ߦ1ya 1=w_MAtaDd`4òl;c˴dAǢH閪9(`Y\N-m{N+;,ЍT1~oƘo0X}?a D JA$ ʮ1IKHÒd uOS UYi$3<֨m?<-=0Dᱥ 27~![ukxoު3UxfuPZvSMɇ![?oPW t=|x,b&2ɡ-덌Hos1u&3S WTS$Jq=31NnTx=EʢT1Z%\)L@'AiErb8曳|c B*.1 qUKOO$in=kq|k% Ȯihw߿|I]6r&f8.^ݕ3b F;[#5!g{*hb5=)$ ACO?!lu<3WMuYGЙDBV/_D)!X?ձPfmmq*a9*2ߛ~~Ia}xu} 44\O*B.~bt@ {`}-ॵӑޫzsᇈ̿.~}"&d '*JIi0$9+@A&D;:hamf&M%EAeE.B%RI KPIERB% 3%?KPeV 0 /z ,#Hš!"W!XǗ(3EǫQ􌞎z =HB,I MKKE# 0LQIP2M@HkL$wK!ڪpOůw5سPfL&Bk[Cd@?J9QܠuHqE~VuL&Lu_Ra:%^!{oeVNe(yŦ6H188c1!3S0kzEQ~L=ʒKrM~a$ PZR,FawGٲs,NTЅH>HQ3(ig]$rrËVcu7(ABKM#y(V6EQ? .u?H\ob}m Ky๙(hw}#3*cV9hetJ8<3B3#'z /&h`%0_/]QT( G2"3BK{ǦwYxQӍT dZF2.uAp&@_;2Y.TŠBGڣI_us 9)89wWE-(z#c_bk ?tN65UNwzǧ35"cIk`I4ki:yL:2FLc"/Dslpi?G8wf$#nI@Vo RI%<>Mr+PѨ)(CHNڙ|2ZqsRbf|v8 PvKMZ$);W;5 +:DC NZT=&#o}b;._w_×ה֞\ @P +-P۶'(s"&aGy9[ (@&FPH99>.o#$4q$G=K8U扤7n%;\3_/: E#3f(Tۍ}Y;at\6 DONolN=#_U=c]XNb!/p,힯|]MCaG#pxpϕnw1Z;CU("tBUk#4J&ggv!2)8M+,>? <~at:iaWqY463dd߇?_%=tY ?;z'wVb B<̘d=?9ఒTs~ tfEtKۯm%=Ϡs[?L;s)./IXrߢB$q7!TZa;Qƶ$R[l,qJ)jݝTc5[;f]V>JMQULf|\,Ɛ0Em{fQSfo^K{^ܧG r~-b'07gGwW 7<|>8ǫkW {1gs,ذ`v/Zݑl uFDE, KC] [EPm!b] 5 DTg͉y<¤N\@]4oMrGR8ݞJL"T0 j ؆,A32lɈܘf$ʎ,2թ,t&t1=Ӄ3 Y^65_}=b;Y' aHLDY}gGc8?u{G}+0tŴY#xGmuWu68{e8kUS Hz+ ̍KeP T3NJ0ق p];O~cC7Zb̐swkGpG|[E|^>Wcє\p #]ݩjn(@$Q~IVeaxrˈh7o 9pϧ1խk=. ®eupȠUV Jh L1 D7|-! 7 ۮ!݇ D[RYjkA:r>v9aq6-|jK)=0cg+2봞Bv]VwB0I]Ν &8{Lyb,Zxs6 Lda#f)TK'j3HʬPebTc~Z.&(ώ0d;dZD9p=Mu 9ow3uKDM/9HF؎f5,ZA>oA[O>i> MxHPV* sj;R"TpC!dsI,UڒmXU*jSVJi.bkuu[N|??ߔx]Ϟ3hގS\;*v1?R .0[13}ó&oqU)$ D:T.2TwL8z}xuWGWw]A hӇ 揩g0a+k87Þ;>z$I*Y h,$xHySe#&ThbBwrQfm'v}nPpԒBIEξ;4hFq{7=Oe5W:?+&hyo[ sT]5]Ѥ|G;D-LjEH̆‘"1I x 48fXivə52LJ$Dԫ^0ၪ/V6&.{6XÎO*0p=A2U n;2v`nlL A>K(-.Ԯ`?r"nhh~=U-hV/04f127KW[׺z[ >uU2I4yT4 )FodaB0IkwTpgA>5~/r볘6|VY95EE91*xl-ΨozOqq yp',xBf<>,Y AhwJ9@tqL;L7qgcx<ߧӉa'I'jj;J6PtZ(F}=Cox¶EL8K$zw]QƓ$(s>2s+"I: \cyU%$o8#k(* Fb&;h<(?1PPE):{^(s5O]a ݚ8 =xBQF>{)LQRn!BFUX%AYR%# e\Bux:|l0S!<\vAx{4I-k2OW{YsI.<[6&_z?Qt`=gG|خ,os  /M~NE98{~m5 !)$# '@II <2;P 栿Qar~fz:bc"%.̂iZS/7 )XN3vz֫R… <0{rttx(6Q$Իz=$T,1KU+fRk.{_oEא \YA HG'GyF\ւOxoS mkF:Nˈ|̧rn7V}^4Cf< ћWg⅛| 7S!4N44kgf*d3gZ NAo!&fJֽ5Q,a^(h"LDl$)l(fF #pme^?gU);i_PW6oqϞ,r1jK!s~ّ3U%[koJƆ/HR? eJ5؃D tB }fƒe& @~$MOs;"y0J AP0_T>%qƈ ?rEhRw] $J|hV1ץ V{~LcH6b*Cg䓃GZ('Ȃ}_N )C eՌU$7oz-$g،*eG ĥ}<>(tΊc".i1ӎAlf4H3o톁6͒a[(ܩ[1}ǸDHh5Yŏu{71MX!YNC]?ahp$˥J&r .r/>4E6Kcz^S,-B^K L$$Zan!qw5裴n1w%H)ft9ٝS9H J91(b'D7 C9}l(gX$Y-9drsm*3rl&W;[^ᆣ,p-LL( mCWcՐ:cYVbd{Ww@xi1xmh[wW rQ)rŇo !_GGh^rIa07h%< 1׵M~#۟vxM,?HX0ggb4G D LXM6n͓YY X$#!a?=SL85/Rd'E좬FJ#gv; /I;.XY#G&H0l;u1. 8~Tvq~oGWUy`#߰tk(mOG$>|Wc;88'I2#G`1mz0C{FkU#`/ˋ ҁĠn17 &%ُ1bRAǂ/2Q9e^~:ݘYŵd6z![\U_tUS*Q.YcWnc!'plIQ+U"}吙3arT$_afn,砏9ݸ vE.;d=`1<1'\PySGKI3EPmcddbXդy9A<{ K͡zY&rpqh33iE20Ӎ]W*NlFqTPH|s<%FՔ:S-yiInI{uoUn5^?3)`G2rGﷂȁYs:\6:))x4,xp4zE&bYzxubYJ% u5{1\ُ=otei!ׅ"V<|U׍ޞ4ב(Y4qUE~b|(Ƿ K<v)>ݾwDh0ݳ6 -pwl35x>h.Xz.g\B:hhxSYUsVʼt ^8L!#b!95~!a1JވQ%VTqF\>V肠IFu(~Ơwa5f`[40>0~/DS3TBoou/ӝlv# ^x4e"C(N?Ӷe_">o3ҳn~Y1ƺdϒw<긱x|æ~:}me^(~ ElxEFQZ.8a9=gv0q^Z&?E5U"6fzt[]4{0 GSM(όB8> T̓1Z ] jŋ1Ao=Q #݋N:4Ҹ칹bBf3*;<du2~#胳 ]y(djפtpxAmS-3o[)֬v)r`OkMk̉1-܇T)O-љƈ).WrsįT,Q=S*YR/nT+,H7,.9G ] idMUp:j2iA*%ЩպI=E$Y7veVm⯱]at_\T)Jy\0atpSM߹Zçp\ ʊhgebr5K%J`]WyI3g -t25G +{e-%c kzG4dhCN! }ɉU5$hwpQ%ef'O.$M$A<AcAr,CA+pqhھ9} ~?w۞Z<5˶L^#Ej}ˑkCA1I!;Bh?jqw݆cs6ϛhPKBovOw \2d!2g.kcESdWcT(k> O|BeQ2iq+Xh.sh$P1v܏n kG,(c}ĦW%TĠz?]T!K\F|/bH`:I=WQ\A(y6'S86gb>MeI!!" + SJuA? R=ʄ+҇W\YӓA,)VyLiqpBNMC8=X{`anh^sm;5xy%[,Wnj"\ v矷vy<}KH#~ehJ3ߩ ;ş<1IEh 2|p@tR4ТAl!/族<= Í@rWmle|e¨ZxT8 EBkT9GoG!K4QiD3ֵgu[ FbTDujh S*VzH`\֧2l]&j+EA9VrXZWطV\l4k'^R4`j 5N76ml D 4b[9ç>~g|ntb’ 4 AML݀SRċuO/&i~.QȒcg*Im^͖}U7߾8c3XI~~ *$A(YQ}r<4>]|m!8c.npiL&dJF&m 5!-E}oM.\NNh4} wi&nc(_PVls$aЮcW= (T xav|oy-2zި6T@UHv+;hP(g7V4DjRA9TiF\ƖhŜH`H cƈ]DZC"ya<4S>1%5Ҟa y('zj~9>܆;Á )UZדގٟ$ny̝%ƸnjF7Qf A/943l<^LsPz(9uJS%Tm*[gI;.'BR.7p9Y$$Pb1Bn# GpUNZxC߿T$w=Nc]SBTU I$,;HcQ]y~b+-\iySc%S袢u43b-/?I#G\'!ɁKOOESpہ6f@qK&hP DiM<ݸv]|>?6v)"BgOGS{c^D{r)$|kڿ?9,ێ׌d'>iߣ!Ŋ$,C|(5uœ!RNv=~7dH+D` pp~8GG?!x'Nݟits{#uٍfk?(j髢4͡t(uw4Ź=O3g.#Q *`z9 M9.??j𩶻y{bFP8c|@J:X~n7XD7{]][ !_6jM x6f(+4Ҋb<2Tk*A`>VhҤ!Ҩ9.[ !2rU5c\1'@Y&Zx2b ~/}ߋx|yLa#IrmɁw2'ɼmi-֜7Ϥ{,L]e %D|}C0(j%hPnt#;3x5E`{ W乔BF{M N_}Q tۻ4lch,b3yj,w&oگ1/jTgŽ7|vW^\+c3Z›-2s~y9jNQ쌶4ݞRQT!tMb .7a,)P֮61>M&=N.4*98 M=#"rBb뜚Ν?j`+B.+g7| $Ik♠{<[`91Ny8Fv(sLey*%a魖cN* 6ȳ|ɻ6!"Vw2o~n=huXC@c,Xo'ה9^O&5|4y7zqק\0㏻\l{~2x.[ՈG ϥ<"mtOYSݔ B iSTBlutMET3G-3-55̷f,+`zK'M5.Wk [iThlzV8`g$$$I $<=>8x3Gh'ڱUD9D7톆~<#H2JùclQrxG-tJI;8吞J>= XBr3x)F&Fbϑ`+U36fKEYw.sd+ੇVbJjCw+ ʈ#VS-P mc3U"6C--j1!xn/k`gD&㳼_@Xo^'kT>jv)fT]BqWcv| (kjVk۰jtu -] Ğa|\rڭtvRaBѠQ,Xk@zga4=9;sEpr qU'|&/ͪ3nd Ƶmٕ䴯e&Qg}[G%3OUaPgD .M}Hi̸ٙ߱"z@Xf<#U%'DIKDs[rdR$(h $ WBqĄ^}$%F$'v)hG'A G)U,Ck`>r4>U& >ҽ k9rSAFqyvp6[`W AX6[Kn$6xLs׃noӢX=ztK!=5Bmȍ1l(n3}2Z>_ Q ,uDÀn3Ev!2!(& ݏ1~y6c8hH"aZ$።6,hU2Ț& Z8%T,cPatt:K̍M49[2mMY6el Xq?m2aH}<]\gۼ{:3SaZ3*[ǷPæXBO%PXAJqnRVϓETꡡ)yDvI><7|f{ȟ8BY x%ɳߎ]6]'8;&ͯ k\Q%|Ǩ̚~5P:褊ԍ48=,1"6Eyjr$Ҩo|89+i%u4*M/l)WnV wSUьә% A Ĉ{#Nm_xVPAE1^տ̶5sGYM}gk*P6ېVEe[xiY)ޚǠ5wYp%>J6_"1Kܮgw'n%{f8(Π1t~\]$xi-bEO=4k/ٍ _mn#Ri4q9>*0f.يa&+֚HՕGS bmezK3hqʡnqV'jv'6s¥^k)yos@O=.E^ߪ9EZلYDn0cc΁}f,? mߛ>_fw1j$^#RdCiz17+b|5!!St#ӐQ2`#@Łpfդ:B(>[&oxyj!,//,頾P dAHYH){2UtA.H6X?UܑdRg $2) 8(rbEX'ԤE\\8gxLq'&y-%ae4mF1SF6g56w̌WEZpRվ5kՍeo ZA*$@?ʀ@ĴhR!N7ZI(fӚtq_ez5hM9͢w}P,Dުq=x\c"~x#HLlA8P<+1mLװ*qɏMU0ךѪC4w;Y5 =ƶQ,w5:ijgC\\]y/6h,dD;tKc.d爑Ev@ /m^3zr[S]PVF %uS(%ss4WPw[Ĭ*A/&S}TYk`&dv#Y_[?|7l PkTy$,ĩS{UkԤ s.8чQ$܏IɗEI3N6ҼSa]NT%>זQ~=y1RbrAݵIZ37G^=sS0qCS tox[zf@Z_#D]6Vr[q 3aӠ;WAࢍB$HFffha{5ϏB=  ӛ|3+ TRkݙN#38ژwr)V?uf8%M-Orw0˼ ʲW U Աdbt(A >>wuP|cN+V$X7פq7q3)*,e (%E 'nhf3n6l1,̾s{|0#J#b"p^ oF,2v^Ֆ gsNIV1*ߧ2 c({ *7=)-5M>%Wv^D퐛Q -flF; ӅG:5j{Vq4`s=ǾkǥRQDG] \̒[7sЎ*Et󈖘EHGkڹFȾ\ƚ[@iciveBmu4":}˽#K[ FSu{,7,r9ɯ15 x߄ٳ;kYsy"#B_ rNnEA&-}+ԦWI !G+M{ M}Bfά nӃjr>>$BשEJqszL$sɍHaH![hXiBH5^_Ny0%*](`’6yԏsBERL#u{XEe?)rC )Fz^?&cRYy)&c5㮛q$y[QlR̗h]BJ,ugg8c]_t EK/- ZbMp3S}lek'Wi#z awZtNt;z25 ,t/F}^?E%r V/]T)1ͧ|Z:20m$ …t~qM1Z)ޗ>fC_G3ft~z|i ҃ϳJZ{X\qW'2g6ʚ< fNUSHC" \fJK5RsU8YQχqsg_դ<d$O3$B!uдUך[zEA*pFGdHU>KlfȶʭMC&qʙ}b<4Ed)O:<ߎ[@x$A"9 HMٚ$gǛ~4Yc,{[|J*GVU;䘈^y꼕#Gt9kG]ӣEq8$Supz'M/G.k3r{jg\מ4N~uR`DLɝP 3 uDkgS!rrhmTn^+ I2eޖY,]ǒf-j-#\f@BL2I&w^B`?o2U5{w᝝z$ďLPe5,$1L5U[(jAy=LX1緜 /̉N#,-͖E9j\PwZe?,t}$:IYǃlz^?.g탖Q!(GNɷ97G%zg|ۛN P[s3t^Hvw?wm? 1afHN>~t誊5Ȳ -@HSS<\X0Qf`&Ls1g [TdX^dzc8 &!BEVi0? 0yɂ2O\ú>{aǨ r*.넱=AM`YT_k%g6W fNZȖ*O#9bֹycӱކ %x72M~ЗiF\%ܟikF< $(t&7ƻG٣ }"׮}uT]\9aZt:nR}l]9HU9_L2'(FCLW[0q  w;Ii^ߖ!@]C|SG*f̕?t~- 3$!< ADA44:IZ4ETVRdU1idRũ2 Gil*uꫯS]g"pՖy8@SGEHimZ )KA62&Dh|}%;VFuϐXͣ A̶:PJD sW2k. fq\{_?_ .}3K 8a¿u6q$, Ts3ʷ?0}ٖM߰C0fnX,a|;-˻Ҙ{SS] Rؠ. 4$$$Msf3]9צl\쏞C쇤v؄&'3K͌c_ٌko7M.ڲGo +6u+9jrׅlΚ[~ 6L\n2%躞LIvdq>lr]y*jqkeThu3Rzil4r9KtтGPȯ'֗e>r?f‡CzBa͢cNM :cU0f))a?: ֠"HxvlLy?Vº-!%dcF{z-ewP&Fj#_8յ0dV|v{ v=|hA&# -; &ק إ:0LۃRHwrͻ12UCs`J kۗGV[H_]D[c=4i1]E$ͮ˓!;]ۯs4՞l06ǎ0&7=^M%VWW67\ϱ^wR cB?ӆN^rPai H| T$m]@S+k ߅M#*2|\Uh+#.rFEf9n8f0ƻFY %%6+$ów$'K $L2dBamכ^^:7_CF5)˒ 3A@&cK bJ ELqjְ] 0 (hIRـ}(N}%`1e} 4DL7x/?My=Z)smDMq*~ t_ӒO,2Bbw#ťd-h9ξs 鐘d,^6 !&v]ڤ8܋P* ɻLk@0\tFKHS{colot4ԦX('shVΧ3 :ª ΓL/u]uu[)Q\R@U' bBhڢMG c"h9f߮ba~ @X:iB#8$uc~c/jn|JΑ 8(C^*9<RAo1uh{;x\Wf*BeЊs~[䧡Xٛ" ^ j|ǮǤAxdd8ݪ]5Bt 6&`ʁHW%rNWv9qQ!>S*/]K4T4U7)Z⨑I8& &tYK}$g fҘU)#u*8'd2E o JM[nOSE_z<[|%[z;eCmd1B&f*P>Y%gn҆o$oQ =I\^9(YR )OWe6e5N?޾d\b 5OOft/,Z@l7%-xD0!f}ajN-dҩkR(-Tњ‡ӦbqzxCboRwPfN4g03!.3zSxѸ\:Me췐99Bi 3VV-AED Mӱw-n Ӷ7LmpMjzaZs{=UP3&F2KbAH2 Vb2} \gU#:M`?ye*]Ų8Y6F)WCc[C6S{ZQ֏[[w2;[D'yڞʔT^ߗzg0:Lu<93*ha0ׄYQ,(<7fS%&~lLV}ۓl鲈ϖ<=,;B[41\%zkTq*-%2d`ļ.Y4jtaTLz<Zm&8_M58{1/Fwcߨ#V]szWtQ8_dݺgXshtw\3Wkٗ%4+jwQb||ݰEd% Ej /<7i#Q&WBԓIqOqU0D dFb+-`GpF}{趷n,{>b\Z yjz٣9 {K\$bMS&T$ҍ AYbi u0bgW]w8F>aZg)1R!a*j. }6)uE\|hR~%iK&MG8>pRsE9͊ 5 ljxN˔UElGKt>ŒV`EE3?m;`7am'6{?(3GdOˎǁxJǵڏ~Ssw9_z%oԛ_)4Er"CaAXHE> тyl3f{ƊDhE!Ә}ln2l ݁i$eN2#+O_{!Y˟VBIJ'J)~/N!79PJP% pCR  ' SLq̆7qoXP;tFӶz[W'Mϡ~·Q"6L ! 噭؝f*f.`k@ Hhw+yW>"w9ūz䫭~e 2cipϕUbbcla 8AD-a| `h]0T7C?y(2|~h7W73|pi!# ZitՠGd4c׫a̋m/ \ǣUZ0FB=yLY*Qzˬ&R g?\뭹@׳*$Z$9q;4&NYr |.M\,/g濹ߦŊVU2>x3@sAԄIAd!@ J^}7h%"콥>,M}rq%=9d: 2u9Q3xOu\b~] |=%"XV>C6=L21#ͻ`n9 &&(P(+_?CH?R(aE$3|q~"FEOP=Lʡ|xsK%V|tiMAߎGꨵLJ3^/ -gz8mvT4|.ĐK5^ߍoeeR :: f>i-'#V=4ܯ-RzW!yS:gڨVc{~ݣʉ78R8xŪpx~g?{6Pdi>!?Ӑ }d_्ŗ嵼x>2[,i DsRl&zH g?5?%cjBF}ܒ猌g:o5Fo>{it*I6M '?GO3WXV|Y;d7iGuLRtz Ph܃mᬳIcZ_񑒳$!ߍ2/ܵ#epL_Lkuv4 {+ia[N,^?nو,8u0V8k^L'nר:CQ}8SGU/BdHB{.WqKZ3k-hO]-iv_ 02ۗ7RmpAEa?9zx[ɍ'zZ,L.#C"11P.J$WȄ/z*z/Kppų44SE0׽"JǢp.]ID=s'g=v^ }؎sb Ϭc`G,/a#gbtsEHRLYZGZܸ4X+%&zt:C9HDg'k ⑍g*ĴOkZg>7upc9|!X~QlA֪3hE_WA2 t8Y]<B܍(@JvPJ m:)e4,uPo^<I!:fm]{ߺwٟj|./*%݆cڭ$oF})P^^uѴh,NdS϶t>owL'B2qPV)Xya|YkѫXiԙFgLJs N~S*u<ڢNIsD t>"cC`B',l+LT!-&P:t/>X۬UU|]QC3eW!%~t5Ɋd9M%$t#W&Jj~zJ,FY'lG'wOK6۾!r0*E !!H4zuNd$`3!;϶+ʊGھ\/~ﶥS;OGtp9m_jkxvs$z"OgJSI#LkR~hD,q8""q.+]rC쉏/&P-3j#U|rV,,g_ffa*(ל0z>-8ԫI@L)AT QJ!04D+E(R! 4JH@edU(LB*DZP)bEQY2f0LɼJd p̠31)?ˆ" 9p *d(%)(P( (<ԅEQhK,d=11$qz-kGpr5`5  {>O?_gMiϏȠH1uHrvG{/몖.LS>YGx^SVf}\ S`[х ȑL2"SAG9$ޖF0fmcp~7@ܽ32@J¼T(\x4ܰ0 9jʈ@T!CmC݆%$j qbq9  )L;9$i!L8b L"'$r++:& 0Cgu"0٢3qc’N'l8b"b5t@rx鐝N^Dʩ#Dnr!օyj9B:1AdpR |bq0'C-;gE+NDHh8Ԅ쓹<./xM qr)뛣užtl2'M)"a4уagE wc5n5o'' ' -čpXv_FSHߊ4 `uR p16Pltc$)w?T e:7'!8I 4eMtm\cS9H#8dHd'Xb`q]iڊ& YHC ~2w=~ | ڗ~/"( tRLLE1hh.:I8f 7=IMnTq ptxu۸3*LdeOvdc0?Ǚ4%0A1d!puRrg `XbdAaH1pF q"|Fju׸lcUHu?.*\WT^VꥏBnxK/gеXj`:?rNuh4DukY>_=~󎿊c+hw>j'6Cݽs7ZwCM.ne$LSEUmvJ^nJHLlbp1 ؟tq[*M=:61;X }LF{DIػ" HLǵ!OcHG - C,s$n?G> B…Ll*- m=SPwJ= Nx Cj$#LeQ1JIOɆ& |<I/O(xtSSmmK1DA5{זߒI3qsQ91)d1b{ ta٥V4ʄ KB,o$]@_A]t@":I=ޚk/QZr QdOj0 zbA8c zPRt{#yIWgw랓.z=q %u1ΟCꀩ44`LJR[3&& xF<92%jޱzyD 嫘붯>F$Jh(""J& jY)" I$iZe¨HA6R5r- PbXdc88, 4e2FHIF!O1 &4ԈEEHǃLjX!1Ul<ra? 3|rt紺(*=kpT@$8b#vcu}|X Ö[#@Fg ]EKB+ɈbLԂ3iCJ5bQ/Ć] L.-l+znBHتŽ4J 0ap ^~ ٬f­n`Ar,> 5 k.4 )!{CHW=LI&αr _F[]9S7wW9iMn'0ja \S52I֒7:lvė/rUn>Z}ʳsJq\ ,r]D:vohHuC*E:kDFT'v#4m.5>5C؞"/..l~5q;(d~k _4Xd HT,@Y\js HP{|f ! `}"Hz< -hQ4҅$X0eťY 5+ ZG\0Z ֳExk4p%m, n\hOa;I_f<~pv5jSW8AZlH@%x,Puɉ 68~:Xں񏇂 VJZO]O7oԌ }cI6r_6-=xprU ${ A@&-:vl5L46 ׆W.fGX"~RȄ Ldd yi+P7$ĵ2&;d*d&2BGN'N~ Mt%f.j5U@ᆰgwQ}1"{^Q Qa93g|>o伞n hIt ᑾ=Z Nv9/0?5HᮦETk DbF!a}_,~#WҺmbH]xY$ܒI&I.B# 9й98E։J!ٌQ͓Z;RGۉ"/'X[*c8r̺󢃛L1U.IXG#J)p#F&\nP*d{ye](GXofC zYR3mrck~q=<6*\X&4}v !|xw:0>sp1 $܄t/ffZֱrrE=-Z#}S`sx,%0)2DΪI,4QPQMUA1ܚ׾qfɐ>H=m('|8n8lNL/"*A`mfkj)3Ʉ40+-b$߱)&z b ]ͱ 9uBsCE_O[fYc>Lkf{8us ;%x9*,o#F)A$xA yPof8{ bkќ|' LƩPw2c37TEx}nAvÇu;8v 1-fȝ]`v=V6'$,7dy37DiH>%5'Ʋ+4M'g^/YzM ⋢Z-S&x@+C".2c'kQPˮ A* L!4ŃRk {f<:&itR9Ja1d Apa(`Q|,^gVzF ~#L~'34rj{>&zt-a&)*=Aլui,Hi3%iC~;ه1-d{V0U` geAĸh( y|wp9 M?#X }QsD9˜ӍřVȱ 2th=\CʊYmVZ0c5 Ɓ<9v|/n\y3 &˞5TKa򟐏 㯔W8N7 .dq51FAtor#7d2d$pEw-n%#GS<䍯ODGoq:c"km|MS t)]]0UUg.AJ\mʚLspsg;p%tQ Rd+($΂\#\kxIAt(ŒAD$ `t7@*+LQV9'eGύ>V5U]nq/yqOuhp3%/GI!qnLk&RLE_8$5׷_h+dr!JxgjDp~󰽳͒"[26ˢ,?j?\[~2)!6m?f|7qɗ|~guE18YᢙC$3T¸=5Y\p_{.VLJmΡ^ԵVT.gNK?o\ƚE h{ fЩۑZ,Ó%i7Y MG 8\ikXb{̒wvAf Dw&*4sN0F|0{m{NeǯMy݉O8IOq@wt?Xx𫆹.>߲zj|mEt1PՅk<.\ɮb/^ܐ)4"Wle+=NES| ec8J.u)=߷%]GKcO卋qUTFM´ VyFHyZ;jw*yqH֭2Wq~۠:z5!wF[./Mw6j>!"C#3tWUFo̹#mrbQ%3 ҍ5Q{mOJ{ PԪpY; B@h eN`w;:;Ǽ丫ƺߏ]W>Ϣ=nN& TtB-~ŋdrr?z*d$+Xon&nh {kɛb&Q $.|8IBe,;)pU8U=BR==-s|6sjnp<]~J:cLR"| ῤkDبQ%BM4e2&ax[Sץ98S5GQ_koc1Aޭ"T<:%8fS7~2\o֎+oUe R]uAMXӎ"{uS J9Nz|.A-eDhj>wN̯_ŕ$¯o O"kAI/oΏO}95(%'S:°HtDh!E}CMekӢj&/w~=Yh5}y ]ceDEz]q?y XQphVP4g]"X )i,z>d6?N`tͤL;XHS la2,-d00 FZpg#!FDR4 5SB]W](i qiݥBf%,~oro$.l*VpfUT9Z5kR\މʗF49hJG}m5fN Y"Nfuojg2TE}d?uO SO[Og?'뵮@$H$ O f~XI&-Ųe2h!8VvDǖfeS{%n"03Jv/B ٌEyhᯮcsA$Z=Ngchяi_ܠSY ]oJJ2V|s|}5MvxC]dq)MS]ƵoݖaBfͧ WM|yWe6x%9hPJBgXF|;=$)kփ%"{jNxj62;Oۼ3AN(v<;uni*xj4w9.?\AÕ}#Ny3~cYsRCJFGsϴf81{43(Nfa[vX5|a2U#aL_QiqkN,Xg^'r3G;hNpKC4GUdڴn2GXG{ok:G 4my͘ ERjEKflf$FpLvvg2O_6C)YnƠݖh>FF15Y|TYDd\eof*pg=Q-8{L@`VHЃ"zX 1]k3]Rj;c\p\RtNE:v5Nrqk{km(t|kk9 rQY\ U]=)Qbg +˕J>03y[p( ΍o4xIEW$1+^g#5 8oUh~N\ -q 2Wk2nXiTiNhvy.AIy>ͩSC܌y2~N)L_3:ou+YZ !IPjkC/(=U^d)؞[04oo zЍ\auVeWp!^`5@pHB zENyڧV r*j6blaۿ窗mvǂsUu[jM@ҡs~ؼ:.QB vT(@)m_tÔ<<MJ Mrk@lUeRng Ϛrm031y+\j_HRV' B(;7 O1rǽLO㟗8gGHGOHcz>ϫ{>W=>_^Y̍j,Û m`G71k g34,\G"t89xx`5($V^j Dq 7)C/ b ,ngR0bW4*FljsJx93Mr=bWH|4VaTCfeVoyrj hlIUfy  ZEbu|N Ӷ++:c#;3J<7ŭMMJʄj9|cݷg~u$O7~b_TqGä  L:2A?eK'rTdHɲS 8PݝB?cH6G+ܘ;R\>Mc &<N(d&%S-)M!ʁ!yګdw~6j&7r6PĚ :tn3%&[N;`O&/iK.fš$R,lj:1`f3T͕OцY㭼?dէ~QҬ>w*x3]̅'RbV)S5G8vZDfHdSȭsf/|^mN%h6)z9 A,2bNM=Isg>*Z3b=-㪎C3;}YVh6d`0R '@7R%%U$bi9Ї9q3]~2Z "50tZ% (c> Th3.,H3NuuU(2L9R-Wq蔄S{x0RF9O㳤ζD\Hkϒ]z+fEHS  Lh2VX ?'E^+3T)ī&1ۖv6Xֲd(W.ŏ;Oza5AOJ%ZE2P3f`@DY( tF]=YްTsy H(QBu0FYBe@aYE~DMq!!0< rq'RT%p~kP66Xig?\}8vep u~o/񽙀8A  01XRX"`2oŶsp݇g_ Xa?~/]\ϷGѳK^3WW}.?O2%am>f8;"lp7^?qWfJTUǒ^}O4Aʥowlj~\&~E޵BomɌM:v϶{y̟ ^:΋̀Hu?Y+猻!aD zQ|tFOk^~>lqpĚȭL(9~ O?vxF`97!M4u#ۊUH-Dr2Izwt它 2Fj` r ֔5Ks9:jYSȬHIvu?L<2g&BbB4(ޢϧ2xj ^wkùwE]{w=߾e4n&Vc3 =#% ceI-MކY(vC`9 f1i% ̶lr*HBr'xY"lt:4A6WK f6l,wHiُM(`̖ s** ifs2Y߻F.A=;J}Ҁ7F!4K 8F0greܕSCA9gB;oeY;JkrU򒥧ψs?^~"h Dߛo]:Cm-Lp z\ޙܟ4˖=j?;"[C&#K,*/»wNAdܘqLY]ˠdALt)$ͤzyz\[:vK|ә&fmTe.Jց&arQY-gc;&jdtEhh'RD!ۑv=QM:4Qa6v*IcUaï@S$qW&s *rsMi;6mګ5$2+27GvD0oӟf ջT캙Pv”~DѯL8="_PIpie^Ai8X"B;r I?'d),Y_>|טQh̛vhH'sJ:7y͘ΕDMbCо4qi:I˃BwX2 vZr+&.y6e,;Z]>N(a@͹Y2Mrw2 w2.<pZ F\P~o4 D\aQoѤf5%ֹ:y9r>۳m[28qB ˲TV+39'9bs)2ojyg{%=^rLD{-eК0]Ik):5Oy(mjw7b4lX\b AIp1on?ן&m^#C Y`-d+łݲnqK=ph"΂p%mY 5~[$zMK@0̙2L$&Kng@HӣWq\9 i&kQ0  bƴnl' ' 單*B~p$۫c R7Rj! P X\qQ47pa@NÄɱp *Rd(#-⒖W-p{Ԧ>ߏc%'w#Ce`3ruӖG#MqC'q%~Cߙ驌)-c #bR$dn88~:9AD\8 fc'Sx=vkn|cn%D{+ s ;5BރS}c-˶1,ԻFH2Czmp(S3ǎ/_B ;ˀPA1ϡXvrs#v9#L5OIᡴ%AC,f&(l(:_+}u9g%Hr/]ͯy/7é_f쉱 ׇq7K'<9*&m ۆtJtހS3I,Ie5 O&PNeǕbEw51Z2hk/Q<7!Bo㗯8rLj6=< c^ ml}+TEk1'<%FE|> qdq[p8r;Ӡ[t) ^X*'euQō<)VADs)1̒!S\jWpYJ٦9v!)*JJh{Y|\q߮LŘMg͢p CR3@9 M sE{hvKPpj\)(1ਤ:6;Ln=TTSjcLS6'"R(HWy(蜩֣xRgC !C2Lѹ(8 sSVDZNNe)!>o:mRQMkTDkUA#|3(R&ђ~ T\Uʘk4+x :(ȪYHrxXr:uPR~H(^q!E[n!M؎31s:i9W"q)G s[SiZ BZI*ĮF̱eMsHM|!Q*w+Nnm&p`Z(9IK5YkocN)UMR1NĄ*(GQc LpghIkQ=~X=PY4nD |*yDU=q=x`tm ֺ6wY[mNލMlX`[CNgZ ѵXئc73 S냳 fì͛aF9(Hr6mwUų@$Ld`tXB]@zrI AߟϾ_,ɱ 0L Qr#ǧlEe={; =Z /I/rwB#5 #ǃ/BKYf1J% PR[.{8/N&[](mQܞsW-z^L._c6hai˾?% 6 kH!0ІLMQC!+D()Ie\kCIȽĢҺt׊n"CjME{Ț(j+2Lɲut9EDǪHU[b6\8F[`q.<G7LBd}wtQMMiQub{0t"Pr+(lnIs@,6nYϹM-O~i +}(6 P̆|yYumͭ!wd"ER'Nwߊ+c<ݲ΍A+HJ}(ReWۖ%u9o$(8;ڡ)4sqS@#"3YYç˟Bfdv0]7(e\|rV)Grj2ϪBh6fiH=;p@+W&t>g~Ģ?!{/@PL?oa6?vmX>I+3v30*qJ dY t@Xf ɵU` "C{RzĭwR3eD@?q|7q$b2a|f4 @+Ehrac+ !2"xXH)aȏpCh4F&SK "Hdz؂A &Iп?HHq$@"Hcb`hXnB! ~>N^Qnqk@oj <{TFG|Lsi?;SS!ta J~HC yã5[n[#n1\Jsh!N|d=3qӺ{t2;d0z1$Uf/뱉Mg㻂F{pONj !<$תKJQ3"c,Iy *.SX8]!jPPt<393^sZspv4oBl YR#cE4eO6fUP!po 5?z_I~a cޭO@Lhh6韙!rWN 8r ұR^RRcVߴ? i# .q*i<~E܈25A fJv~Te2;&0g_KĶ.N9&T"/kmf %4j C04CDqm ݵg]FyA#co{">۴ n4p!@Iw퇊xLbMS}k׋AV1. ؝3g-.PQG!!ǘ676A@KLZh"アP=U&0*D&AJ Nzw;X8g̻48.yY}N>(>"ro?/J~7ݔ6^_9O<B ѓUJL|#-mo6bUPL $ֹS-t;J S^QT'A eH&I$8!^;{D= )e0qd<9T ܨj"MaYeVpR΃k9j2(sbZ]&bҜ?i٦YE}b 㖗tzuFeNduw: rSS|Z{ߋV&OkRe& ~iY1_$ԉ[GfrgN Cz]EBvB*teRGeCZUfwmA46(u.2M;u̮']v9ysnǶoKը{^UW]UXݢV)ÅBaWU:ppW(О0։1vT34Sl!@$:-=饃j0~ʎz'b69zͳR-sh;ŕI9$VB;"A!e>L^%yau^EYq9mvfGS- Su{Z]ގ{ޭ9m+%3}c2)P9[9Ж?)S%QVrR).}Pc2lc2.$_sD7Gtt2dd qNց"ggT*\(dI$C?Y|$"Hxlt_$$$<+lpB~S~\*]0)FK:hu14S1"KﵴHg=bw\FJ*[8T (41:Q:[q*n0䈅\s h9Og!HZv1D;J:&[ Cx6¸Z?ws XKRd3VX|s~$VxwoF9y (m'&k&f>̛J=prUmZJʒDŖ/hy1ǭoXϜCQm1T6}Ru>k6dDxB*rZe+Ƭ#Gv5.qw>/Kyo膰#%MNm1kf];{C1+98)KyڴƇ qUVCZQ0Acu έ_N:XNVQRLLL)N'HxT$l1RA q;2WI&c9tE 6o4P'f -鹽OOwiLÏoطP߱KF^΍Pt&ܯ 29d>/hI1iIdC8@?/l9Hjv!̥|$b @ ZPX 0$fJw@lA Lin B팶͢wgiAt$ Icqe ;%wb6 鵼-U~<9¶/`U<ypqKc\g^'R3H% H3ϷQƶ5%ԛ=bpx6p:xP8^үk|Zl=4Z!)iT*+my{ܲyA 'yMQTJ+'^ H" i Gyϐ^uLpQaNF1(ehWu_Z_bԽ6an}j; 17H]6M&,!豢 W8'0%S 3s\xC!"pcQ.fU:~ϧj>}^fg\N#֗sHYFC6V&@C@^K y[3 3lwGO]-\I0pҏ}0?m*I+'OV=݁V3*%;bDx"Dq|~5@rڄe+Cu+hbPgĸ\tI0p=& !OϯF#:=xyivIe8vٗ1/)-6#^9`@6¢ A$ot15k̎Rec?"ɓF5κ}gڀi(Hwv۪ ㍛6X2%iȿ%6-nc/RQ:0 ӠXW@jE4h6Y!nxw3noU4јQeZ Hi$lJ2-ms!Mwq$~OM&{9=toxZze~2bOi;n23{=w/_wUrS_7n}3;?{[sG|+i_'z_7g7yɃlz\aeGz?[ـZR0['_:|_A/gA({d8? 茯7NcQ#ì\mqbBҶbnNJh",yT˕(q\lsJ&T{9xxWoFPdrKiLk]J N+gjQl,+2pniGgͥ#yCME`_6c{#98ZbV">;CIlzY2t/cPk ]@ܶz].]ZU%Iw!P#`h(FZz݁V ]Z=Ԁh}w$"#'[p?d8]8l JR7S W;b'ljCTKlz呡Ǫ?ƫг採dNh ٩0,un T+ͷR߬*9 ;[:ڂ_*]s4.VV?%edkJ{8ͳ>lޔo W,@z3yl~r~V{=װ޿hL5sR1Yg(aJepA4ÍrU?hܚYfo4BEQ$L'Nl&$ A!]섁I\G=YN+JEVieXb6Sy?oqX^ԉT%# Sg64J'NYD+b H[ɓ# )$$Kn<*. 5\-Vtw]5L;M 3Rd3@/Qīay%*:.U&wt$@8ȀIG4 )73ǤYc=7_緌aKޚ LIZRBd@b'IŬw6ω?T=JOG>:""%.H4""O b,#gG`Sf# a~ RV+yuS19f䕖USmHM<0M.ƿPKR4!;@ vlݨcKaf j@`!|351TAJ rkXLwλ[ܥ&K/]tF@qɐx4SkJ٤> XbW5̣}lc+msd,!ER @L|AQ3{OD;$$R=(NB6eC30q2L9!(_|bya5_~/^4q}F5Q__SE?fk%Ϟoѫޏ]VI٘Wv)M b/vk/3ʙןu_1G=QNZ!u~V\6] T1 zgVuݙhgV~oUVed9CZW˗nz \!Lmn,.⮉S-P ;؆wN.^a˧Ye?_oC\5pmn؛-gVK7uhYLNg9ij9S㻇}\J=cs_ |(ånǚ]ޱuwD!ڳCLwb)_*X g(+%UЕXQUȢ(.oXL^dzrs$]U4}'ɢ9,g|mz[IßTSC . opԡz#NiiґykI4 O(D[DAA qVUbHxԸdg, *]&⛍bӞJvaZkcQ~\]_v6\#j/ls1 X{f^#m2NSbϧISd D8 Rbpd?<1?T3_Nh fvDD=PkPi<Đν]0y.3яsޜO1CD EP3J|(BbS|[A.o9EU=_l1bʀcCT@ pS߳YH Ӧ%/].lipA.eĉq.2ln꿈KM5E#$V3ez:k^$n̔1¹nAՂSC *ڒ1X];lfeR;9\kpUG$9/ty@B 2Cxvt7s6V QK=tLA Z.%/2,}I'~'|tN{ybr&,ɢB '(jbȆ %("_ jBQb/Jf2|Hq:^P{?tշ;e?:39 $B1&:ۮk{777z\ԵzzyL&ґ`Cß_Smt(z,EFLy٠ђUHTۢo].=!wB+ G)vY{PzY:j ;Dž5wp,Z.D8/^&*k$ΚQUG*~ 73cG;F7(aUdxO ĝ_+˻2e7OWF+;D?w!#k"a"Ty >vb%7a,(`&o/j 8 ylݜŰefoS4h)@ /F;{oE@E-#i5: qW `"BI&jV|yfS]Vv ΜD .T喉>UtB^J*"DK {~ WD .FzZ4F)bE7 Px喚dҳ錶N+I ĸΘ @xci8Q-4_%~LҰө0HF@m9&^XV6YlF`{#S +S:$9uۧy]o D @PdfR3y6@UxxUL/vBƠPM-oV,֙%Q ְa''R$xIELzCPH; B1@kEkaܿhGMp߮t)w(T[Ufۄ{`ਸ਼<0»%XPTY0{.ûE1뗞5To$^;&je%71^>?211-\ ֙iOsV:|}7o+Rj[- .O='q* Z\ѴdKhV߿%N =b6BhA#P'$I?^*JŸ?/_6 XB&ĘBܘB6oD$IZ',Ӂ-ypjck GljLG2kYW,VP!8'$EzlLb&v=FKhFK3$Ww mcC:zIJ1Ű2)r0ek vP!?#i;Y(j KMM+݋K! {zS:bdWzU5-=`㭛yX"]~j"Ix|(AR@d!g+Cͷ~]UNz>~oggӛdG@Hj"CG=IXoO.?D>^1!\~tlG7:v£Z,Rw^<yVq H\֡oCKu0Gq?[5yƾy$1()Qm4EeGō(}'vÅB~Ba=p ȰO%]rRir͈(0&nG5X˴1[ `to&!F4!1~γ5 [JYteY(iX {5>NRjޏ^V+?*zWG߈q*2-/IzV,wW3xHKI8֍nj; jZTޯ$|EԯC{с%36ݦo[k ;iEH9!E\w;0hEf$l0UTkՓzYLWEvQ:ՍK%FX֪xs7xVEO_Te,cN{~/&~_tq÷ccv :b;jM5NASmߪ\}Μyx7Tw ZjUk^UEE4;nX,q)^&I}Ū= l(~QL"{?^lDOcWǣ n*Q5e:BᄏRJAc~61?7k9KXV,!ڪdP5Ag]1,[^T$ *$6@3N薭.neS^D[m/(q -S8UOnWaT_9%,n"Vwi[ZZꂖt-S:9{~/nY`S Щ&KEWҎ`91:< 몢EQl̦*-ylޏ|~tw2z~QQ!:8'J>O'n [g7EW<~fq6^g l}p},w./ziR[=!!r >_ ٻŏ_4SC/lo1|zfcjdwٷ9k^:.W_ie¸MӅ7*myH}ynm~=|ޣ|q{ytkn188WGi~۴# bl^_~-}I{^+Wϗys~5}~s}<ڼ]^B#-T(NӨ,U =MQi\y0;/*/O9HGY&NcyYK =ҵ2G& 4+/?<$ :ַ;d*~6t`Q5h`ʏxɩz;y>@xY)qdUqi2^-Xwcn͊*MShHtS᱿j񬽊s!T\ay#:BI|CQκV`fEӻ3Votubk+VzTq ɂ3=$){E^(b<9%F9tvWxl>~Vqe_ZƬ[~K绮cukSg!uEXY]._}뺹PshCYTX78p{CG_-y_gūoJ gD Wb'p[$0 >m[4M;.N]= \(C?y,έ(<5 o&|r :$7>2M#өC,!bE GBM܇c]~wI ۳-th0n[d5eS< Mtu{\o1 ":JaSdU7DYNm3w6fU'/w{K_ńuW׹5^|L;Y6O$X5|TafΫz2rv|oyﻫO/f}0y.n'f4O{wڻ+r 8~ @Fz=t{ 1l;P`Mδ͛ŵY&ĒjSғf8e@iňZI2OSMjÇ5sͻ]]mUf-N6Yv~C[]>'s|> iw~^a3~<`I3u鮻뿢zoWmIgpD(:^D{EƇǽ8e,.Fyri:_f斷!-ë.;-=qe3zhR:lG3_8IṄjeoϳWmx%wNihǞs\^ulv~I4,[5^BL-4 "O qQ0r\ pְ0'mvY5G= 098`g\rJ5V.v,͇}/[ B0F^:Y Ek6лƜA27# KdE.½Im&NHiZR<=R0#/mW8^or, Pjy}0jwآIT!x3v v#uk4wXgL}| [@%!t֩GV>G/rV{!DM)gjoE!6fw(%ޤh;ò%"T8c Nrř{+kYi>6Y3bw|O i,k ÞWQ.˛[i~A8N0FlZn^_tŠ(WWtV:V]udbձײyG9s1p).m),NuFxs۲NqҪWEޱc/p8FZ(cwn4ŷXo~9;ƺ3U}vqxy˧Yq.ܞ~rٮq~"jxCf#^!&y{qn𣩭w8T5]w\7Mqtk¿fofڵZcc&w6W{_;53wo?p{z{?){;OYM%@ r5K䁌gkm1'̧͆fADU+tj#쉬cۦy(U[ Pݩ&-/:ϡ3Hɀz Ґw$;Aŝv{iq`$pLѥ@e kz¨m{,\Z:iN.;nL&+A5BD(Cw(7!p:`w:D\N=Vʺ`^Ȣ" Gdw8\[u;Py:qnw=, clևGp˝-qH#e5XRBJ{xk\rR ET7t2 9q8.jεS&ɘ|K^fm> eRY%6xaNB a$p`=B4YWMgfKfn6I-p`NUNÇګZEu-ձs=}&:~Y)qfV *U&At%p6ݜSp1ZkwvHw[HRԈf>."+>|0&{=e~|CgϏL]!6&k P>^ITA{^yɃ<2 kEǔ+A $I{X@St1"p@{@ Ar'H+&B1DNxΪ1svU;(SJ`8}'eUݲP*}0uwXO:4ރd\_׮1=Vu9 .Hw9pi㿇XlFtQIeu15wD J4vޭ;«Lo8}8  cPN=N*bm ɓet( t?=4hzQ`t8@_D*2:BA1W|]==YQlqڤ5[ 'y.G%5G h|9zJ<N~ $;JG%t5;n! )υKxqT9F]d{5Y!<~5 I g㊣"rPsLM[*2y# NSAU0"iuא V_ٱM+LhjtM1,(mcăїYRne(`[)% ٜ# .]$UE; L 5WW ;7A564W=̎4t/T^freNo2:eUD%z-[6}9]iɛ!^]G=]^r淒vb@p91(>5^$p~2-Һyc:dbƖFf@0mCH6 HJcB]B͍lQ{ʵMSxjF٨nhx.XCPjk ;³q_ժِ$qR]ĽMP8b`&-w$!16►24Y]-MGs#Kcs9"0ȥ݂ %NBZ ɶ_ygWreÿ:,u]+UE쁬 xoǺG46n%w!8cR8RLu,P$ PXb>NJˏXvKD3J\uTN,M-Z;i&_| 1>lAr w\$+mP)&gNGF˗%3igS1|ɦK; :0" )Qcf٧Nc-&`m!.c40~m4GW[7mi[Xy_ ʁ hDi`_t5K5xf>nY'g_w ٦6aQ6kRՅl9f&MpT3 /`bdz+3IӪopDM?;A;C]ʉxss/m#'fzG>Ӥ=P93#dd7wfY9SG9)$xt콤y~ۘGVdnv6f´v̓۝?GEo 3byTnT= A<34rWUskסh -f1EsNiû-đ1!kt^&+\3 ؒK"9ߏ(2 o貣1O;|\{>;w*#"#O&Y3Me8ryykFܘB  jXi-D(MpVZS]7ȏ$lh&c;1P]K|*طf4! VJݖW#ʬ1:ȴ09@#,VI@t`1˔@@dAվ0BI& ̀,30Q<;e+n2](rK|9*woyl?B %ݨphI$(PwH+(&B#y6L1 Xbj੩hw4$܊b9+ œaML35! eT%,XM"r91` L@|:KFv8͆îQ[i!bP+&Z+0F$6ƵH8oiA!Q fRjNF91p@quj5d!dBd`J5(܃anihj7ƅG{"Og'qxvgҿWʳfIel$5!8֩)~4/#\u#(LBe[_#ouG5,޽޺ Xb=5|C$C.juΓis)+bg0ƹ̿^X#$KC≯kx~IҺ6E SWw^3B'1`B^''}QqI#542$ )ԧhyO4vn&Cr^}#-l M1D. ڲ,iffC_Q@ a{?53 q5 UQ%&Hq.Dl 4B'm>>>c }:gUyCL l5pj hEP媷O6OS* 1ilhZ Y#o!p,DZp?x% 4DEZCGzDV:~F~7S;돼A&o&~'*%@MI35j$;o_ŸM'3cjaq~jHXKכ~h|Sz .bc:-ks@#MGXL!ъ,v7}D܄*(ܪ4Dl d:ȳt'lKG?я֖XF$R}z<`g0p; Ш!H%=ІA HI 3H:y{ a0eFZ8|+KMI`1=uQ: b5 z/t"܎.t_.Qjay$ua$E"IM{_9P tjt2)`تl)p(@N}/. N)FI&`I &-^[SL܎c zD% 6aAL,U `'p"5n! H*fxdo3hx D]{q|==XMyȚo^@8 ܾg>Q}OHҝtkz%+ӭ`` !-a˖.ib%7 "f9!Cg:O]տx, M~XGa:6꾤9+ h=: ʰ%r,ZY{6]}^?p}ء }BƱ2`NpqI?ۯ:ۮ"MS)pj?wWG㎎i#ɛijwB8Gtty`C',۳á9*>'!f&2yh|O)?5ݷv3)koYX7\"{\SJϫWO3)t!HEHcXH.{r~/$:CP}!ƚͰAյ4HV&޶r O=TC{vT2D2^Kނ4Fwa(6'7>[#3/O}f'Oz9>_r'[;(\W6/jKjwlQU6>4\Tf9ZBIn!^h`Bc fG( ujc`.]xJ3dcKFo^mL :{q ;$ uuWWOl4# *\qfLyiدH)>z5Ka)t |h#1-l9g%6{Sڝ7Ľ.[p>*:NʼnHT 'a'%‹x1ELU1}?F$I$I$9ϐ MuH q`});7)>,ociMT щ5j4ÀL$ KP E+! "Avcz?l$7iX8HA$OƆ!O%r3~B\`>D&]p\L \(L.AXROp<{8.x]F0t,Z^o^:4QeY ء}1b G1wfe_/ɤŠ`{;cRHI6 z`Œ+P ZG(qP3hLv5lUK5,i.CT(>ədX/;[ w|n#ä8S,QQFnajH pp #sޭ0yzEUX*W~쩎^!"2)Hhǜª0#g?鱀NWKJBe0NClCB=𮊨~|ܻp]_xxhw]ύeq;nC)ƅJZl+1xwL5~P.\j";Xxj:h?)XBPaDQ h[+xL 6V@cO e?=3mpl@4" L*v:Uv9+ILZ'A;4  C6uo.27̡qę!NFeLiO@Xt4nI;+c zQw9owONŎjdž, V~~ $tk$C=O!/ٛn8 D!C͚hy!Fka1.Y7t˛[i3l WِܛJN(a/$|!]#z?b`8L@&)>wOMS|-\g'W g¤HG@yCΩCP&!4ނ>~UQ0hw8Lg!8gpL @%J lU!34żb&^¬; p_Pޟ h`=ȓՂӮ $Dw[7X OIgHiCW5xzga7kB286wo܅QYlT K̋7,[50Pypx ;@qI0Hu+{'ݴnD<>/`<$Vdd$wp}}ɿ{sy3Ġ~l\۸t}CIxE[ ofA ̾.H }yA!.dvOz>[3*ڎOkW߃*c-%ޞ >c9܏߄$),h6w~o,hl#0`F>.cV33pg/6 &W>g!^ߣrc|,;g= A2hS!9ŬTcf5!lhR.0H9@C>B,ԬՃnh3ყ '= d¬qџuܧp{I.b ΒB@ـ@ GP<3KhatfY=5w۔Y#5״ez%&J|aE,1kK}V{$ |AN `cj:b(,( SDC-tQ!ehVpJ 0Oc4 wxdi1)ٴ0Js$$!p@ߚ|a{ݹ߆ _pwFUPY@`tnS ]s|Ao s\8vݤ9q-}I#هC)fKQÿ٘wa:BDbG!G#ygk U6sX7>#"Naš\ K K`%i歉xŊP 5CTb<*KrhxFJoD2ϓwwv DB܆H )ȿx @ ԖW_cq.&`H!{豽oB 87z"?r\ pE*c$8驰7ϳh_lϯzJar뗂{N|^{ߣ»6l4;4{|{oaFˋ?qUN2Ӣ?e@Z1!#7y  ;42DQ2sm>=U[y}&D#C@3Y@Ȫ󤂭(}d973Cn`!Rn&nӃRA?Ǡ.&&LN^K;8\'ɽ?79 ~$]h κwC9A׽EIi2[ccnl % % / ٍJDBB" ^u02P:\BԚTx=0O+ 7HBa09(a ))f^^Nb{7hptI7b)?Aʲ,?%eǕt0J1t"%+ש3W@ }~#0I&7"gF?g!$IiMak1/p("Az Xy;>xvaG50`|$)j.W=|:N:~DUBGzcbZ{XG=>|cqB øi ã>gݼOHp4bjCR+3D$A%.J8ȆX* .a }9{BY/GtAw  #BQ$!f(Q'm-算̷;o;/K!^` tm ?N.Цs%$˫CGǼ'=.4p6>Wwl.AJzT^{y|(H릂("-Bdҩ&_?AaGK?tmyۻٖ߳}1nnYT\h.5~@݉~ sYL$ "t^\WGex6W d_~I$I)$`CY>հFjt?ܑT<$ ?*2ExKX>Xd@CET2JnؔxD>N& G{a4?u)8e5 AZ?5=1WhScj?C;uP,lh&<鐎m#h>?OV@IآE`@ ߛє^:i'S @h/ :ŷ^xKŝ7$ŊTR_5@LgR Jj*$dE$Hk=.sH`# ye[֖FAS #=JwpY>-s A# IBrJSuM! Mѯ hc-uI$;Zf]<=sœ2]^/&+2ŝv}Pb<>MTx]W,ܕh,41 cI eȇHpbiKqU4FCxs{aGȏ2Gd re<,eRIp6RX-L6{#ثog@LM#pL*X~N1>xc(PP4jC&~#h:; =e9 Avר%[u.Q&k- <4EE H"5?D ]w}nӛ{GPs Z ü@g\,︔웬G F*k7'!9"$j'FT뵗<9delbUs{:a[}p<o[Qܘ G~Zb(_ đ 1&(\{ެPvKJqQYGeǜ\u/l~(@"REbDP!DJ(;:3h78!eC~ ݑPOLܰ ԁ0 68H84cO߹W$Ƨɻ,>>{ñJEHx (b3i~Lrի~'s/[?~C GtGKT=,fk*vǃGNf5ޞNN5{X.s?Bd@b,̬ L0pɟy80C3_COMBA! ti\[/0km9QT8(NDLǼr XAVK@cȐE- ¡(32A ֨m:Ǫ )MpwtAE1UUQQQQTLQTEDIț#pQDԂdd5H'Mث`j 0 hŸ~_X*\OdK3"j X4ߣnQ4aBkM 5 +'RB| <ʙa 5d !cp cLl"lzCPG`-7 NKb>A~Q0bd=6)%~Pdr'X 34"dBIJw .YNmda>/pp{ 0u(ap~0dbD6BM@޸B_N_jCs"HBcN'c'ȇ^sD?_]%?T+2r F0pQSj }Р3!"yBELEokw>Muo*q#Ι!!s"{l:($E@ۘL" J^/A?Bi L9\8xKm 7MMgv 6~=9iq3$ndƁҎ UE'=1#\@Au,ܾy$C2;I?[OIedعr??Y`x=Mq"Y{,B|+7`ɾI=`sE&gLW[voQĚ=,"J݂wծHYF/BB~8ȝ1K'TKvZ A:Dl=Ѡ5t t8,Gi#F5d#C$ 3=Z'PwjRtJN&em;?$I$ :_4pss9,Q i t8-jbp>`aZa9 4cafPp9tGQ-C24=-d7IP{ð|T>Ȋ gX0Z8 H8ΌF^W~'x`^# "IL Ϧ^H} ' y .HaңbB{qܜgn0˅F$;HDX33 (1!r # EB/l7 A86Pt mfN'6~hC;v69?=`b4P|+@hk)5$V@6ٯ.h7ϠrY1+qM:1Y0%p^XNk ЧW@%4\\e"].x`b>ETġM%D;l&I&<ߍxt[m0C" q10axAC ffE.HaMw {ې?'~}zYjmu^dߛ.HPd$XwB$eiM3Վø=;'~rŲ S+cw)>}}=V=4J1V9Bih t~bB;hsqE*{ʐ8p"(NCA\ ;0krŮ#T.^ eKy3µ7fctkCa,qkzJ-rSJZ@^s/zYb)4sZkX'2)dk 2j22X H:V YfLFk sV'/EY-$PQQ9QQmϝiҋ\-#phu.r] sxpHn-4 GBtX##]^Pv ,4tGJB%6:"89*lu !ė+HHiqWU ^4 ]6=0nuގb$HBk!>o'U6M'i f&$sTB*9Ssb:ffpLt}ͤ@?Ƶp:G΁Vl['+ ӵ;nU5m/l)J mV#l\'8PPO~uƶ~h|G1$Y8sy緤ONT!߹3_UgPDAN貿/V =M2CJ69})^`Tр2Ooʜ ÌW/s {hK7I 'r}'#nHH5Ks SI]7 D u A=Rsxך?\/V;|1KB` b,M3w1 ԾW3Z mU);~v8dmUO7 (dޱ,`>}Z;Wz|LA 8r~ťbX 13~q#x3ԝpV [n|~8uxlJ&HFϚ ]W("<C)By>t(r==G~xZ/O5XnQe(n|\I2fCxxSx7YH)~n^^N6kYD9m+s'ޅ:uv",DUscG]uWfhtB]1 64]Ț%eYl?]A$>t|7*2̒g 8Cv~[w:xĺ }fb=p_ٌbXCN] |\as/6 =Tp~/ك@S_\]?ᅻv#:e^MB{^Oħ>HוPՉ)Cӿ]q]m  T~[魿^7h}7r_K2`͔gٿ@Gqox/i`G1 NNx],?_9=~$S_s |~ 0@8ӼP6@& YMBͿw7õξqUX`y_Mg# [c"l5C a*?Z8"P ` Û)K ¹sW&Kv1@j˩x%-H|ĘlF:bF3㿷Pk1XFIGȠ ^^}WoNxpؾϟz=??vP8wiw<m >n2?h 0 ~2MfVfsS>R- !s])(?)Um4$p .WaIaЉfoAygBS<df3dJ&D 'oPf3_ 0c "=,n?{Wn6T`νn9p%M֓wq^0C@ϹؾMlϽ:hGrzp#<.aLU W̵o-҃s߼zg6--_0^׽uuhP%w"ļd4=\[KE17idyll8[~~*{-G:(fΎ9itU)VD>XFMoCf?w ΜA+gAnۅDž8$=tcmZJ!XG9/ yy#V\MB s'|9'wAtb8[u0~_6)"Gy:q/*pd؁G?"C~Ix zUbXf sWwȒNvS*i6 "eG6'?f'_7Wl8 ?ҙ\I|yQƌQWՒ}Ёx Kysŏܠ!M=oTA/|~OWtCmh?AR OŻo6&aB9 ZA=U__]/'&bz H !"H"0@ܐ@{?~o~hP!7y{?=5|;9w^6=avb/ mThRu~oQP=dDTScL,*Xc`<GOwW/(m09nos?͏z-jV~.}x压Yv)O5}μm* 1:GנN2/>7bPxu_cO- SHǝ[֏FLDxBBHBI!2BjT?)uv2$$*4[հ˩v~Wƍ@i[XV?%FmeyjBȨ䕐'St5KAFHo%))FoXv!mpk˶ļ}Z#<`ӝC>;(p#ba\lBy@o=NGp- yO|qֲ_أ=@7[O[ѣ7z]h8A&~>$x#x曟"tGT2N!&x-P*MX>& [ ծÇ /o^s )\nyU:IgA;rPd7MxtQka$g4|yW5̴(ro*5V*t7:r}55{lBfA 0;MNSlO:Kp$c(NͣR'1o*Q 7jm75ySr+$cHmaiZf̉C A<#жCq&`Z䋴9Fxꦓv0p:8 ,In#0+[҇aTjNgMɚ oҔ!=ؚbBݱ߽h51Ii6:[: 7hXV̛]6Z.2C5 pc4B5sܓ6Zןo/(/9ܵgJYc$!msGbژ(xuG a(CL;^.㡮)G3lgN`rt9,e`$٠ԶXیh3.lVϛut!qP9k!jX%:(Mé;=cs[`ۊ9HP,9f=F 28]n\U#FDs0({D J8b1uq ԄBۛà49.t+cbLܷCO 0(oJ]w l4˫LZ0 M hbD:WHSqVFhh0l:J.ARɸZ 6P&5`̮1!rGkKWJgU%6r@Ŭ.Fqf/![\S@sK][ě3ˆF4b31hH%ւfpv;4| yٽßvpw5N%!tRq7]zEξG0;564D5Uvn?Ȓ` NSQpa&|Þm lj.pr#~}<ޟ?hCwHZ{ Tf-$'mH44xq*-;PQƀRHM(c2휳h)8*dc `Ȏ=3LA#hr.Өԏ|7H!;w"QvhX{PgIllllll.:=V!cGp]MβrNHf bpG&e0Iޓ51EwtF?hR26iO%b.t v 0џNjAI_>Gi)&NO{|'xw1q.joP?Hꟛ{ki/JSxHj-R[}qĆru k##wޞffb\q^ (,$Tgf* \!10N:IFn!a6VfdDJ^` _:I$s/a2S3$K ^*8 ݜc^pz$-|W\$MޣLɎm6/: 3' ,UUTUUUW) 11u;]Awt/y:d& 0O])=TundFv}ܼÍ#ω \bMa ']psMMƕĹژ2q̧E/RO%`M'IC#qcX4C7Y EޝÙ|ݷ6:LCN'z:<ۍH bstLAaXq1avt[}n0aGivYLGcCz8X{,O cZ}U`T (߮`˶uH66GfDFDPԅDzWA"ٵśbFbŴC; Oc 鞄!3ZY;@4L5`]q,bo߄wgQDV/_ɟ}CKgOUPAQxG4t1,5pdJ+{t7&V &~vςQ~q֊46AĨ#4R oA`YW]3\qۈa :;bu{&򎧡ĬF3|d~G]6T ;G$ɪbؖiO&6s!QZQ\z;&'ա4KzbPle$ 1Z70lO!N3//D߶rgNm^qbU8O>7zc r#NXA-^os#Dv/ QµjsOεVvyU|領™_ A8Qƌg>(`~>/w2#3X2p|%blL6brrh]ɼ򺃽L0ropޱ ~̡޶|OUQϠ ~B_v=m-#A$ d4ւYp8ϏhqzZyr(V%<0֬(csua51Pa@(x#>hÕI_zoYk,"bf$`ŐSdeq* aHlhtJ&lކ2s0##A`Nzr:ϐu9֧ӌ:N0=q2A13 ,"6Xc_|"Etm{wc Gk="|$`j=~Ċ#f3+ef{`QlsA7o $mYLct WIfdG-wLR9ll$4Na*N!p_2l~\  ሒiA"ZE$} L}q $H20xf!&f&(Pw IB$&" :0nIЇZwu0 284llxeu&ǀ}bPXzRM6`t¢'giL:); Χ1%RDDSr"EG*>h=QtbB {A{`'Y1 xB`Bc6B>Ae[XG lm4c we7T%!4|o<)fZh)BF:|_zt~ PP狊3*ߣZ$9Hc(H-+4"43 ) 'D@ t)5`Qj [tI%PQE(L%PHD41ԡ2 $RRJUD% 1HI$0Tv&4l-c%gtLӥn(U] cDT$-@lt˲79k&Ò!4 :) u&FNuJ 1:s9TP툌`$OSc3HHq^jNh#{J%O/vj$ǓLD?")8Ȭ!LU!IAB|!2S]II< C ևy8[ְ!զ(3 FA5yuWf P|K*P(%"R2I[=FBK+rPcs|!;N>WV I4Aeuۏ"~+ih{Dƒk-1=3k,MfTqmnhX!ҤT&Љ"qd, ØSpk`d)*`!!L5>֔N -AAؽ"F$6w :4D4q?J) #s hNL' hCgɀ;,q#%y+ KZiL#ґTg/S5Lhч;c4bT)Kkd; ՇRo5Z}];㚀e!b@q$1_9- Hӻj69Cn`A6@Ѐʽɞ__ **eoA4RN;xOg:,UcB.S܇k+|h2F@!!#mLlX$E: qsBQc^3K2Rz ̃ %!*$lͭw8_N݆$mW' .Rj l\yƿoYa?O^1L_ƴ -XQ& ' W6$Lb>ʡܸ|߹Xײ9Czaj&W=9 SvJ'ŕezܷoz 6\V j-, P7{$!r -:<>h4[u6%j)n%ue ~-̔\G$!,,gLCxqTxN~fw4ؗ8ERۦG[8q\.iVl.yi$>S*opj |]6@3=*t5 NȠ٭:aWghPgV#8|<[Ȇo5{9.h]y߫6?[2nS!iloy4S톤yT G$m }!GދOAb9|B1T0i 2'z|;ab+:J8w\$Ҩw`d 7R~e=[syb@ pWD"'9=wE/D`]Cq! 6$B0~GT&%ʦJ::2G7m$:"0GL: ]u'Ɯd4 YQRyyxa5UWYgs tm"%4=,s2R r())EvD[6K v9"4l25:ݟ8 G3*q/B{Q܉z_~@<6)|H\WW='R&pZd1%uv6REz;X01~'B$YP`%z $G8*OF?-N<;ss0ۄ.pCl^fג>6Hw{}굖3SNOvw@c[07 _VLj14Fiew kbSr^y;!$.\54)׈`| eIqM{͐ OtL}XQb !$|.%+!Fj5ae͞Ghi4<=4 (O{cWUv XDY6>=hj(C*f ߪeM2sFGj!iP ?`.QǪVw5s'q}Pֻ1j8n,#6f;{U[I]lD@"|ǜa/0@aoJn^ոFGUb4Mq񳈀lzD LbUx6Oh=Ͷ*DeEyltg[zi{nDiS(]CV5RFQBjq}q lƘ5@gZF E6PЂ]-LU,Eᇧ6P[5^23aӴ1ħ\.y1L̴ YZL{$R (b{O܄^G/Wk&xp@X !v@n+Sts BC?O!ҕ_nU_g#X>\ws6D?_ jP!> fL5@m7wv??oupDVB5S-*jv6*pJF6>6_C⯛[+*Q_׻ߓZwC叹7kuڡm<)C~o?==QŸ~ڛw^|>O<'JGT<A4)~ D,輜C0A}|C\]N)[ cOti.wcˉfPs6T9>g!}yhB$VhX a2{0ј Y&<٘#-i\jvS? (Mb!z4, -ID HOu΃y9}E:b4I1#Rc%DoN47C,/olshb~S 3>-PYCAEe]e Ft#IE͉~ ǕX*J(BFѩ5)imB2!*֭ڍPXrI'qwoL]%r\==K2,Y++1%ё U889%"6Lt(GkPffABD$DTA@Eo=PI#3 "0pмE ,`"#* I+١S(h!<< sA$  2g~"OU<ӇuRdqqXے[z ?#1u4@AwfR )APnU m&TNj=wl!>]缲Oھ#}BySQaK%c,#1b\#Xb- +lptD(ƣ 1Jt ,k/dvdHrtwLHOM]~XlBjHb#cĕZ^ \1/y8B1Z'J10bb8$e2ui!Qc0q Ȃ$MY4d!9 XadKBPR/gpy>{{K£)Է4Yx<jXᙝ "i#HJfεh''D*@l3<=Zm]BEgP=pg}'p; KQnј,bc$k<-cLrFvұNih⤧YA(b8\N+Glݣ(A6_n I<UeʋwW s d `>+0 kq&q ; H5A#2.B8faTf6FDQԱ9(bXؙ.@ӗ]f,da@9ES,A&.XPN0TX.CE- 0MXf31B, ,LdLL2+1&0LR ea{h*h,L&)J(Maf%J 1aEiA(ār*ٶXcfSMG##><2S'"d>';j8ǁkՉd?EؚW{)p0gd Y^T fWC,;Cnz'o 6CBB0nhm`5-"jC A/E*6`%`VAN6&CA׽PU>)aybE_~.. kF^^%H 22'"L.gbX=aFu&JOF`0L3b&=t8wAF?LFѳȫ3-ՊP+616T}<~ ̀8$ ~8ŦhN f3$}CĔ4IQ$~.gi6Cl[hK;_Te_N5RR AI5? 1ɄDKA  =Dh(ʂ:p^ i' ""A Y>Y1T$wd;n$+..PhNi''B`k|×؄wTbnfxՈ[ 1;{R)G49'6UkS `OBTUQ[\p+(0JjX~[ Ffjtۿ('QD}>@5ψԝae2b/Zg!V҉i^*[m 2%2 aO4!_=??͛W T?]2}?hyɖ~~c/_ǟ5ſޏ?=?go/sG_sw#ʣog{-3OSwO|_zh_U?wB=KG'{/u!o'_>&s4ۢ?_߫n^<_Vn?%K;c>?gI_{}?7,dKlvL L13u*GUG67LM䍱F#?օ/sSZ#S %? h;qa":h _8|8v-[9 ^hCR p%P JP9IeHPቊ?un0c)aczɓHqa,'zV2-?ۄLAIġ.aI0 JÐà 0ٕ9Nf4ŅohvdTDдTf`,dq7 I%̺ci MA15n4*!p6#mkAbg@P|A"AĔT'i7gkBjO<:԰@dH HO̧Bx`ΣQ*[\K}ys B]% %Y 7c]"5[hyc-hq+#!/#& O!SQUIf+ R( )xGkY{EB);BRMDcf85 坎q^NCդ@1ÝrNNyہ4AE3D GYsdA4s [k2ႬP9`=5+c9VNvht.iGת "T&Lq#!-KcbGbP!46$hua8y8!1Z&e(HiVF¼m*V*f'rG3k7M mʕ zenKd\w&]X%s i. Jz &-t4s|n3"6sei.lAm߳a\ x(0o/'׼%ei[ݥBUw:iRhI M^M{ZZ!lbp<pQ(Ѭމ[;b7`Vi2!T سQLBf)mXBhңm +nD@"7،h< 4f1Euħ脃LJ a=L2n@5 bw3fyPY@L=ՕЄ:Ԃ&H YQLG23/80B2 B%-'a&­r9AC (&vv3]w"?jjdF:][J цֺJ2@qS 69Xl7#$Z&:IڛN/uqە6suUcPݺ]3(~gA˙Й!UO5MOUAg0}eg8(tJrb}ԋfU e5eWvWkNŴo䵣uk/:|P8_bAƞJM&|bhs/ 3uYBcUq朗iނ{r3n\ɀP*f>ӣ'0+:s-aʨǑ,4q"|v63O_m_did!$9lh}>|c/ q 7k2睔W Z@s1?3R%B9sS2o(0 %E a*$r&P8bbNvѐtaȱӽ`t')X񣍠6#j #:<B\:!ɨ*"٤Q*0|`0GgΜą6&&  E048QA3j AXayh.r1!7X cVww3t,K\`b Ny?3<{vsP~HRmbb6?H ߃DM!G^)V:1_XΛGb8'"<2CVv&>|4F!+ Dsgၪccn >52R/&^шUJ!B1 PL P)BEDRR4&o?z#R(B`(@fblē c5"B EAq#jSRHzaW >x~| lO,c0PWJ}|v"!b ŚjOɸ|[OcZщ$M/290ߣT@4EPATc$!N(z dbmnvR khv"Oe!* B!e P'44?ykONC %E1>}~'0 ȁ%4R.&&.eEW5{<#;tCrʙ;2x \l+cc# YbHs0&h韆ͨxmfn}D@x#L47]cФ.m׷F 3U#O夽TBPW PHK->ϑ*bH lAq|O&'{ZX'en9O`ĉUl XQ@ҋX20(\E瀃Ϙ{w*[)_bǡ (ysKX(Q,רi.g4nQFF; NaRH9aJSLq΁v}h*""b)>)O"C߼C$<"C| Cl;u[$ @8 (%EZ%X0I͢JXN-#:PeU9(Od/o'Z" ,~>Q-qOp|b|9ϦwY{:"_$6RБHIb~aN i++m46L<>xA3ջyj1uzmܰNjTBqB-9@S2;MT@$iMv/=z}L4I0̀9-FED$h v $H YPh*&d@(bd TU0QJB$I"T  n %+c1@gBO8UC0tdӔ幓z0ַДm׎AӘeT2'FmV9[S{Qm'ؒaTqk.Ce" J$l`ۦ]l!sa$&BTd[U O5`{r;^SLZ1:E!3,rLc0F.8W81IiFNii" uxZ+56dK\AG$<֊`|{ZmX6z|LX"o=PԩUT~`^- А[7")Ąe E5R_ cݳ]=pQ4E/.] ]9Pz4"8pftR?X,k:vKEˣLqV${-HU;׸ӿ tל}<άLCœ8w3t:(Q̼TrV^ ;vx|2* VxŽqEnn{9CMv`7-wh*TdulkTnZa?vp-ů( GZKqbwc8=z0.1:Iw=NHu( r6e6JD0E+ ad,@oDύCa A,`೸LP] bV 68 emgH^@PE)UUSѹWωʟ-b8c@Vwk'i4IIE,ƎM'^ =2ި+M!?>02G7ӓh\R_8)aHU)HuM&y\{e1^]S84ܩ'$oͬ^zE83^Q±j%Mo%e)<)Ci_6Jf|,n]x/)n7kOX&Ox{ux/c=} :Ze&t3؎#;yIz' z0!3X5OhS9P.HLo2,r1bX K6U6p 2rvuyϛN1s3`5]pҿɑhя%8X6#.^"w1BvWgݐ >_~pYz=c-2Ș<8;ht*H:xlqR䑙<1UkSal_4M|SwcIt <;f2e|L]ԃF5ڶ旧kwf:|-zq`ƸW?Rr(B:nz>LsỦ 0SfL`K]qx,"b<]&<¼.O59X'g.[0K0MֶV!8[p=yhzw,ʱV$mSupxyjm8C!X 5NqÙAapPISR806j.Yˈň\7ijui)/1t@MtMb[m}CyZsx޸ D3]J LoLx0Ŝy+XXxs_l9Ԟ#;8P &w3=rjȽiârS~|x*%L/Aɠ v8I!vxCa$$!;Ogo,]Ez?;Dht/kW1Qi./f[.Gٚl:}gIP9D = 1&}Zshkr \);튵햚Y5JL{3ƻ1t<ԇ[&Ϯ~\t1\/B0۽ǵa<9"aO s]!mKfU-,; >ݮ.ݘ 3YrbH3Pfow͛sf:L7HpNg ɢBؾ_͍envs1ϊר\=570O:d &I|j= K9v9TwZ#}IE{Zg* ġkVvӄ~88$X3Ё æۑjM n#pȾܩlCW1Ytj|+6[Q>Ⱦdy-14x(A%KߘbJA0Eʻ{;=W=tb9svk]yt{ 3$5blAK{%MA5&kz8=ݯ4[J=0٪F1fo8mN8;ГaىSb+(u\^P)S3 뼡;ͰNU-=*XRU@v$}to*ɥy⨇qj_n!" ]pYCD6#jyf:ȷdA΋9 "= H;+Y%FehOd3^#G*Nx֪0Fb)$!rdSgk{qPv_J[#asq˦N%#50Jx R8ݱ/#lm0mcT.KrY,Zvgx1\{rw|]8(94:jeCõs #Q`U!8Ci|#D?sl3N;\l^/|뚔nwbP'a6 í xxd!97|9iPCFٛD]5PPPHʮgs8v Id1 A!X,YJEXMةQ3##"}+aF $0КxLŶ{` 3TK ,F yj]LOg>X~` 3@V8%|f2hq+2jYxu*S Wx1HˉTB}8;*M\Pcu +.H5i6IcnЋ&%~!E21] *P\d Dˊ82ñқP覨&{\XwUهcTp50čmj3.]eff D˭ě4y1*` ۪”LQfąuuB14Α3;:M.gr:ܧ=]U[(v@÷nSjBeD.9j^/lѡR;+"Kk^Á'\(<{DHC2D^2Æ@[4Zŕ?m%ԯ ۛõ Hr&(M45 ]5 hJ( yvE(2Lx2S;ԾҲ0Bl%e˖d4X|#Ń>9$dIݳb[.37bXS*"8 N!zn`S "b8T|*A2KKĻscZM$oY'˘TjWzYB{Ux^,f1S=Q{5,ǜUl:F+Rn)VҡR8{GiɊdǷ7@s$yPنvv˂C8\A CQq0.Pif H o%;qDc|V!or7Vr5g/צj[<Ә۶Q;Q0"͋y: 8|AG,aH)8XETCgdZzm("fvmL1S d|DddˋfxaN7+!lig8Re[J rrM@%9ܭ:2ta(D67F7gZ{WU{,^mI(>{Htku xޡe8}qz=B5_y>@{)}dvO P٢Mc^A쥢*ʓ?H>Y͚|@ЂKiR8D,H˷ CFE,Gv 4]d\ C" b )R~[\ڼ/YÃnW~ 梏ݥa0D,A~CG ͱo`t(GL*-cNO2<(ILG]uj!tZ$1c:Yg1Qhdi;!O96`̇ bTH`:@LXs3r,T(:ѩCFTXJ넚Ea## LKfc(o@~=XnD1 hOA᠍nFX `(d(KVN@VBzD 0mOTREA0QX *<ȸ=G`bCT(y:A@E^J.8OYNAx:$Ai 1Nx6P @@wjR9#I-aaz(}ڕ[TeSX#0n  ( b'=oIaՠCQ"# `4CXj(^荎IIx T ϔv{$N7%(H6IJmdщب B4sG^MblR]{0ta6A16UpS @{9p,jU:aͧ-ת r.*:L<21_ŽJ(z}[83IFmцd2E^AMZ ebߔ̊ᡣDK^z6GUCk5%&1)/E~o2J뢱jh.y+bl !r\6_6G-YC$If!C5CݶwXN]YڅV )qJa hBZ3 Iw߅#2l{vcfQ;zB004jW|Y׷b8Ml^E{ۡtGyMMQLT}!#Ɉ;@FA8e]c_(P +Գ%Iqr,c5a0~EP5`0H@Rx HM=Xh|5Af!v>Sd ]@$n+by5_d B)Aa?$=] $3+iFPyn:2fS*hu}I;޾v^%Z?ҕG^t*f`MXE"QxpK!lB H`&#ntS DN[xOƟ 3j̧] gb/HHUtbB H iJBybĚL>2dpFƳ\K0cihl.+lG<ǙqKøw< qsLhIBq )R7"4r1kMfsfQ.nܱE陋bY 3WLF!aC6>3C6bBdA sEv0=zSPP!+S64r_ hCMe 5uɲjrDrWvlaD42Z!Lֿlk_?8@c|?xò<θk CumвNr"2n2A/WYe*DqiK()Zg 9ݭq ׳A_@`(BBD _|xGD;&b}w/g~V)I2(CDIw7G-rhWGB@JXmM>Jfpgn2pJPkpL0̇Mttf ŎCE.u lUY2 ;m6eUѢaYM1 =(5 A1)Z¬<;'#!ld:`9df $땐jϑ0a 7rdBa)xb`}af$~O"#Ǽf eɅhoZa+%u8zmwanCA8!0Qjr0_sP @JNϷGLAACp&0. ^b,Vws` b||uWHDM"pSh@ $ CEP (d` && x)SήaNJh $f aHB [~͎p/"qD>Q4~n]\Mg\>uךּjl1c\G9M kqCI '/jS&4FؼUnc9sB*t2 =x wx[d֋Umٺ{ѣBnpF#G Xނm a$Y Q~Sӷk5ri!2M a- ?]+mߓ/m8+ZCDY1C&{A.tC2aJx“{gj,&Ih9RshUŋqLCp@J 'Ru f)/kj:%i X$Nah1s9ևr32 yǂ6 n #˾~ e^$o$'Y$-W06FRM.&N}u FSm-!2;]2emafX499gplUEC+ud'xn{JK#JQO"N<}Jo)DbE)S-U|OA@KPu^SZJ(,< ރ44Jw%lS~A!ESguwI1I'o[IUή~Ͻbï r~wњUj}0* II7Pp-`:b~"㗄w2(6TBTHn!vr.#ըsI;\w y37uO @`xh\{0Lq&:27vI1h$=S]fr4x}x0%smy#FM/+7FAO{m9DpKB; ?vΦJĎAconIܥV5=4FNG_c̐T=7굤w;SUۋ3&OUwz&ezaEjSxЌ9 r㽱0_sF5 x[FB&JQht@oE9 tH`.o4ܭnhnA6mǃQla'0 \%הzb]nR0+٘,XAL$D0VBXthwLL\Nl-m6]gxx%t89KDO7HޕXiჯ^w=rG+آ'JS,tA$Mu=.bsCS}NQD8HGEĕԔdA8+5 $vb;sMi%xH 2%eptg^!JĈGıCG/I<<>(Z)Nf$kAiӇKˌ"J1M:4#H2r@QDx~Tޡux-.q@Q54ЪAHD AIHA *6y d9>ٷ+>{Z 0'$މ6NȠ&fݤ8;$J{ iTԦR$$XZP]Vg0# 4i"c"AANر:22fƤdDj$Q%m<ZpnJMX(,XBD%"mpAE@LAK 01l (LFQ!ԥZŀT0H(828Bl 7CoQ H¦ZhP F6 i@ `Ge B QJD|ӂN:Gj,,к0\ # h1CM8l002NrIthB䁌@_ ?dv\#R!ƁO <(.atRDR7 !1] "f;t lluSMS)% @OCF,G%W e)3L ibC 2 A* Х ` b];TAWǚM2WTJPRA1O5Ogtl]0>8" OG&daj%JRge:(wWt?Bz>%%3==^,c7I~o X;@GҘ@h@XKZaB̅Y[J( WHYp:a= ݀4#Y*F?ҵ$@*Jt9>ZPaQهV%ᡟ6 >v@\l(ѡsྑ)!ٮAaP 9 Y2 KebM2Vf4)@ga!3`00@  oaIVhXbi  h.W ąx fPy,$vZ +P B[gq*t]Op(f ~O3|CN7eO枹~ ]q{ATEh&@}`JҠp>@SrOa RDJ߸%\*B^6>%P= Fsݦ}83A! 6bdN&hizl훷w੷s1A_LMp C2!)2&I LU3CL I0QEEusF1,4 φϡ"F/Y]KA daٗ36VI8) ;,h(=7@p#6  H[Ve6akA_X@1/P (:[tdqo A+X?gL;雺,?I:`':pZ\ztï4[#myܦ,y5w&ڶ89xQr?O끡"hx4bI:U2}]-7߫<~o?!TDY.D䨏rͷu\H1Nir4!eL .&y$KG^JO|wt=c6!jZ.; 0?Jd)KBRD3J9wd]/j&W"5J=v OGL#N򡟨5zYZF BE vѢW"#ddDG*hxIS4 a|(CkH%`TX,գ4힚oBN&wg*`i9 De H\TxI{yAa? xzeITNo1LJGǀ? qhe(֢ OziMmhn"&:֣z >}|AƸFFR@I;D|7K'&,Yq8ȇ&f!E9  pH"P?0"3 ǗbP;lTP~8ׯ!e!g$D1 Ȁc@ҍ$h|]! -qf>/I?鐠x!hClM֬+^+ /89_A"zRg}JiDa P):;6, ma.Y8G$8MF=`|`:&:4練4PevuFkIԷԆ^Gd? ˈݨi4Pvdv'Ck %@aYwq i(fbCz\Md!Q14T 1(kPGUq·?] ^S@bfXXDQ[0N͇v}g(j*B?\(iԩ~< Bw [ mmKY2>CQG+ V&y|w4gc9.d- f YR cQ d0cX,f%1XF ~/ӽ;fD4y~TKj0YL0ӇJ)$ ..S*2쪒9oN 2~6޼0]5֏ I< mL7$ 1\c" '20>riI#",\a))Jw3DA6jAC൪20l"H܌R;k0tqB!44̈T:*76.$! 򉘿_Ac'"TP0dذ P ;*7Dfӑ‡l%PL0ɦ z]v;]񎎻r İHYGK E!&If?Jn /Z@· cb&n_H4`@"!'T3I*N2Cp: } QKC槥h=p'㑙 EB$?a>6O'ab BE;SWȸhBXzNf{! `LŴSXm1+֤@A1I]uC$Q`ZAT_^8 wilm%S(q_Irmr1{Ğ^?WYHaN:Ѣ*zLJD.dd!|l(F"*$$ё$`d"HE@AD32 )qU Dr?{ !qLQ}Z (xG\*>(KqfrlȽ}69qil dBLs /_{nI0d?mi>{9kMD_+@6c#ǚu7k6)V>OoC,cKhu% = `T ASCgtHh d &f&bg#(a&lzEl94BܒA(&DD ~τEL0H5ZȊb12Ia32Ύ%!I L, 114V m !l<0ܔ/t&Ε69Pej9"b&K3! qrƓr6(m?IQ֐IWݒd! J\F19ln6Hq+MJ`1$QsA5pC\< y_oEw\5m:l4u &x%CĀڤ`gW{o?엒~} zfO2>N'N ҄8%(SAȒPzw?4GCbO,m!yr\Z ActhS~ [-QC Wq#*z (HDOL@aVq6\%Ϋy\fG잏ao@ Rz0b,p)H( FT+5 A5$:>E#bGՂX@) TZ>>iU(WYCp~6@ XP&auQ)"e*9~qMWw~FHf)5&)";Gy>27tu dQ㭰A<w|5?nj IhÄ°8ssۓܻnZ՝H&D"@!E{# q: de2Ǯ tQOy%e ƹϳkI19g4796fL!4/{oQA?x?⟄Ey:'d.x|BJVH#PLU@JDȮ3 O鏮W"Jw=ѠMZGD1D^AD;&&  )f(ND0H{SS; pn# Đ5t"Ő$L >@hkBVe-Du,h\ WG7 zy} ! DQp׎:: f TpCvq&[TT AEKLAH ,%~S0ܟ?znކ2$DS?B# %=P۞Gv%+R̎`4뫽00򐃸jlN! 8q|^eJ36U"כS̰ɦ-('65i$]aRqed1_c d꺵uf6݊bɝ`:^zlLd,#:C4x^(;;,v;eѱlypo?FQchLΜ^sm+FVIsr&۔n4C[dYXm3 +45*,LiBC`z=Lk7B a82AAw(|CkjQSylvİxh"`vqEþm1fD6:X9Z "DK͒-=IP; 硝CڻnE@2@i%:pfk{Nņi䚾kfMdѧR6AJ.A*!#ԻArR=~L" Ё$L4 ަqW1ӷafװ5yL)($ui)`()T GSJ,4:btI %(p p(5* %<HƲ#3"ѕLm@um>q/X<͕ɖ,*<ƽP%J%BU@tMvSs,]Kֈؠr:`IdL" AV#Ho 9Vyd,НtmEd蓙 5єi cf$@HuD'ag z9ns/혖r*(JPHSHDʓ%&bR"@9PH 9"&IECRU+D1Pdd&H Bd(&J( T2)@+Du "`2 "#wp5rkU7C`LUbSq@L{nucuM9toX)%L@٘ tt5蘍3& HQK@ Sb=o&*m?~`!ƈ(ar _P~]js4M>P 5p9βR9wge ?(=x A$BSDM*CBC2L9OU|"J &YR@T &$$ O~&HrpH 2E'1G3c&I.D5AB iV5 Ka6B*P~Tm:T(K *q}jhh)};x3z0PMu pJ5Q5]E2KЇHHdzP smks8usr3r:?bpR, K@)# PU|T uދZ͘s&"bt00=kNIId6g&E4)c1%"USA[ٟMsHDx|^B p%M-6}I`2L k!#`Թ' +u0-&c$ڄGP0^yu>q"R`L9a4%Eel! v>z 4c21'<=`D>26!a'ª#NB!N펙z%0'v)^/8R= (bCd>g$UR{hF{\;(BxeE @RֱBֱ8\.ع4 6*UcMRi<ŘI*NyU!tGG8^X 3׹ӆ.gٷLΗs ӈ#O%:u"DJ M_`(H)9^30mgrkD?ޢ$FaŨ/pLݣ{nU 1;8EQjY9Ftog -if!&lnUwբoё f5?Z ±KP׀S67e\>&b^`n3U[rkI91}o F0Pگ' U_{łtG8IjaY}|OK8Tt\ڣup#'k9ٿt)yc]tV r^~wېJŴAZsM.UNCг檪[~8Y غ#S%k3"6\nHiktқR@82dEAUJفӖ3u)51xK4&.`VHifDL2[ YŸO fJFpֱ{a@D$ %5A1 2c dm ,TcURBGLXMUUQPjR$ 5M@H&N0 L`0B6Bil1L 1!rH|ݑeh3*,U`&R2j$m8l: RXtY "5+a2o9td}FX2'$F@9!E ,O_t&bf $%oц/20SYraZ P `$i9p5CU!o =OHZI!ϜH@RPS,pn) Ήp=^v,?wO[ I5v-XڐD`"COO!2 hM'HS3$HWbT`UlѲW HSq3?z%!"I %Wsr(^'S1QM(NP,I!(k|0d4!LeaȀ5۹ֻ@&kyb5LZ;ꉙQVDK|!$O, v$5J:ff'Λ ߅Nd<%ҧ;J;O u|&e(" ֬eiI`T.D` 2h6(Xa6< a8hcw0blL n&myX$UMFH_4;4(Xk>_џ$Q+J1M@RЀo_!h ~m_&m*_M#꯻5uOcYo"Ox:VAʖ<[/g%˓\>mcbD}"z+Lœq Afζqd.)${Es-uy7vSfZaF@ $di `Had%eKic,RB7ZQIV)GJ:4uC'LΛZMi  M$R@X3 nE$2̶]MZ r" &( -jt=<*eCX5MPl BG<z6~RgY ،]ʀX99CUDX4=s#'= [*j&а4j[U| |6gNYfb!U~lA>_q !p53KZQ沂QHZ~l7j9̜fU=j-kTRp 6FXˆ~`09(cL Otl0?ZgiW4HF2f1w}YH;CI5*d|3-CH|Hѓ#H着ĊkN>QqM)N+d@`E]M9XP5>o\ =/ <p1US]'+3zLBё.j1:GctsbdG^tSo[ᤵ jRX(j#сƸe::R]8bniE)K|^,q֔mȵP:ޱu5'qrO7LʚY ' FT#wB  ؈" !qʹJ SgG&4Qld4.%y jw3ZS)(ӉL"xra84Z.y]990E4Ebp.+,kqbB)2 MQk@A `ՕХ<Dκje!E15)'k s[‘-QkZzx46*E\f^K\`Qr7Fii 2"TFIP$Ԏ)8L{e̟-"Vw~oƷa8:dƴ!'լ(1X bJKnzcqww~ߏѣo<ٳp@kQM2dAF &"$RIJ`cc0D0 E pp*U#$h`3Rԟ`y^{ʊ=POz#(캯 5j~ O9cH`j@mk)fJBF?HV{4)zP{Á= 6mŮZ?{NX$:!EW"qAsڂ$GQUNFRX䄀$B"hc &Ք:,JN Of$kn4A,q0pPjA"&ЄL$ᏞFېk!vxࠛd[?(hPH*PbL`ZE$)Hd^jsT8kZH\ !7#m tX4Z1V 3̖, $bf*&)*<<ΘKf0Jb5Kw)Y$4H|p4(>nd"|$$7HPtlOHX[ѽK`4U$0YgfCM(ĸ`a%1 :gC|? DMJqgG[`Ct Q V|^bdkp͆'fݛ(bEJ2 @(]fID NH5_b#eFHm0 aoA ~VC7Bt&Ez10k:qwӋj[om`vGdgGG?f7,sW=h{I)&T*I0Ymozal'`8SA,()`J US^mq7!'M1"cKBÀNnyGsܴ@mKufkXCp휆ۉbH.`dIKTK2GI+ ˥PQݗ>i왊xNP_qu-l4.Bx[/}F>=^biEuUT@4;w =dUJII4A/Ni Li,`ZPԌQ8tF24AȊI  㹤`e4Gl|M㞼cZd|D9 T°(bwEu] (ъ}  1L ˠ=Oi|{_ ću-QhcUZptpX5pMi ~⨃zaS TCv X?|uh !3Ȭ LVi(7f  ;騌A4TDBJH ) ~D4 SƚTt%dsDQ(10!sXc8!"ȣZY'pRoʃgCphB{49RA\,~s&.'61Rffv4-]C<h/~ڧcgejck5=ʢ*4{pIi3\a Vb01? k5 cR8STnقzQ>@YthJP7"RRPz'P{UabGN1 AJ:v&{*5otO<$H88e0~X¾(KJ#EY~0ـi dȯC0 H"BJjᶝzwZ W ĹIv7bcw-OFMIDޗ0&$1vg.(MDD"QP!+ׇd>F?c"VUDЂ\yy:DGi 8#FԄJc Ҧ'HM 17 IV9Q*|5#Ix0>z?ؿۼܩyFO[*O OTYr0S\e1zHD)N@q W\ͱie:.&%(| A"r y2v o,zU bY1 Z҄a-+MFoUJLev蝆´L׍ˁ`ve[qO,A%e>%q?Rj".66 j:o0oNغ\HdQۺ$3Abx$-b-`Rm24e&EM<c +a"HbllvdLf.P!>Dk_$#gEYNs[·fkMz%%m g(a7e" C'žH>ޮFp:ugq(Tvϝ;b~,HkQ|p7:;?{N;!D,șC,k)DTxǮ(z.JMzYN4 Y3YPSdq5331觽W绿U?]ǧTsu '4'Y Hfɛq30-9^d CDM6QrtL rat36sqْ6X؆l؏T>"(HE_Ⱦ=DK}D$i9r@[~?M57)W>aCPSQD43C[kNw88 ;RAաpSr @S\=2&GL'{;MF};N] 6ΖGr`X*#!YZ1f4Ɍ 4bIqDyb|/`x5$#]D0IݟSxvS bk8c q T@# WsEdd;^\lmèMoOhObwf%ieɃR2`4ן{^DI[ڣJWb(p(0Xbb # 74054/鵮R9͎wqD:N]]RoCa$H ›T4a 3FA<]I,$Z:R2B|J1ߋ( QfZ1K(4N* fȫ f2,2;0݁BIPE A@DУ@P)2C fLSɋb'L Bh TFJB&#*tAr&!d>>Tߧ4j'F<bi1 Ly2蜔F cN%0ZOC. 5 !dBt"fk-$(݄%þ D.ĠROzt Wz! U"jѝ3e B!@*e(5jsldbe\$wNgW[;"HjKL&F BҧNzh84L@O]0BIgpy6XF2'=@f=b&kW P9voyꗑbBFJv^cpִ )= vfQAC~^aRvjIavg|DE <9au oل oD=F6& W>X'c]FN #f1w}ETQf&&Bj$.jETm峀iY1䖶i "22ňx"i1ԉ]r&犝A*nH q``(lCdh80 ԡ8p< ?` 4 hF(+ӯ*Kq]Q!"vפ=btɞodsb!g?@#^8Z.N1baz oCpQtc4G6J]kMlq$xg_ 9*qdc_ٽ|~[:3 袊$PBXr.6$0iKÜ.m'qtu$ A 2 AA $%N&4?qIH0IIɘc3׮jvd\}{ %w~&"ScB^C 㘡Y\ ɋ%, BE?^_5Eud;C&77 -{#)5զX0{hq*Dm֦'`Pe" ÛBOڸU e]6tx&Eo#*C4&,WR0YcH%gbBc56ݸ ,ǁUI4SށrAD3 Κз V6´·f"f^fֳF&WӃ.$#c⧥@Xlh`CMIk0œf-jFT7n&7L C#0u b&\%fH2չb ̪0h᥁4S[8I*K(p Հ򡖱atTˆV!01S ]ædGg.JY`pn $2= qK<\*cFcves@ ĥc5#Ѣc J\Jp64S üQnڍ lqGYe#jhdFdi6n4c#*ڒlf05"z3u2&=r44æZWvd5 ƪ顬mEMnAgp Rd OY]JnKM40z,dA,-V`+GHd#T:8AU?sn(c$!HA:!G$ZMJя6Dս`R(daL VEi~ @`I aݭsq"l<aN%NAm,J4aN'yJ% ߾r=:>VһMb!#LJYg{AphZXɧ,"ʊLZ ;<%ԀlgϹPd 4X1B8ϗo4vy?q.$_!4pd kC#:0Ce)!@"BZhdH++^x ᡽uUM_f8D&2%nȒ`鿮z~n<\Z&5]X!,QI.ÊEYN J0.E0ჱ ]R?71tv2%{pQOJ`W}7DI$"@:[QE j1Cgh1Y\&wֳ{ý=Mct)'!2ҮSW V9 pc~2'%/gxfRq$n9eBҙ8 5-H~S7Fk=ٱli$|qh<ǿxDTkݘ]lcϙ9dK 5jP5pf!H k&0 t"Ħ1 %O;FlPپ+:@ ",#W=n/;(eݶzu(d,Bkt6 KA]嚰HFH u 8ZjER#<Ywz@{|lJFFSaAC `pv$xWZ?׾,@1Ͱ),skX1%[*MD@8/6RXH:8 T~E:Q/09kDJI(eˢt2pG*Zfۨ$ȤFP<@p љ b\F!fq%9g!+??5rJ~yS:-FF!MEWH]Han3zmAZ'"V SZLLb94ԘbR3IU.aajցiTcFdaDIh('H$um8G)8rc"L ^UR3BhJh]JDDaRXCi< ԁB; Mq#'B*8y#}P6,oaMLEɖ'A\ b""wH11 PHQ,#@RDP{)iJbj ""I((&+Y-'. D@C3GAS;OaaԨHQ"ZyCrsh(#9Ԥ)\N]9 | &R"A*j$QƄNyA"(yP ?tV89Qrt^|=#F!6`Wo6)uAO]c3cz+V´µS$VAF ƊXYT+4He:);|I@y״ОG(q$Ҕݻ7t6:nt}_La$ac&`4UPK@<@#.T%/z2i?.yC22* l9m!S SR*aJiaY(H! b"TԘDHMZXrW%($V*0 )!eRErDqL A#1_2H`bd]T]"dP7q&'P[Y$FUEJ7p|uc̏ "E2(@($ bz@RJ.AIpIqTs4 N/ŀ@0NX‡0!~=P@$GעpIj}X[c H=@K(m0P@E9= H|{'RTJN Itl7ϼ!6n+cm!!R$Ed )рf?G|])  6' уW5` &s^t(yȼH ȝ @(ORNBrr#[ ;dO2ؼ̱"gًH* 4vh*И:*α*"*QjƤ1*e4Binp - P (e%.n(afYH ,L0C(!5"r!L&J3 2UJ '1 3HhP5&Fk30r+I`J(eHjW 2C0+T''%$Lp)Pբ $4 RjPtj5"LAR"@&L5:ӚCIa&̇a@`EAVfh" Me9j9&4c*98&PFF9\Xŭ8Pdb!KL+mRRJVe0c2" tPU1+Uh̴cMYRm6L5`ېq*.(3ZQÈC`mIS4Hc!(()X" "*hZXb0 5SFs',+NLh84c !9H$Hh8 ;4h02 x O!"h9FEDC81DW{\QQ8 JGN\N(!7\unt;p0^N^b{-)4a~mQijmۧL9*g.V!ƒ !LSo!w`he=/wq4/N<5:>dR]ѹ ;0d8%̩ul$Q%aPۏV65BWDA~$}Y\_OYz+pB$@`A:S 5&{?kzYg~{y-")Dz2m`j$"j"h Yi 2HL $M R_nnV L^@ 2Z-_;΁!>/7_vwΕ!Ϗ3y6mŶ|t Ugf"LBF `wDAmHӤi8XH\q^WbNꐊl9GS` g;kXJJK#IDUUDUREf,M]9%gC|GCu{7؁`ik1b%0'$X,e Dr201TxN""]}f*H@ (hRId d`f")b`!N@I)i])6"BA)QڲAB2,N<4Ta4,t4KXu.}&& * *XVCY D5!+YdaEXFdc I:\@w#^s%(֍OIruBdAQ))HR+@ 4(Ѓ i h V&(&Y"iW\!WҀn Nׅ/MM^PDj 44҈qF(mDS}2<@EBP Aa m oޤA,**gb9!^GDSך5|lhH@+ph(" $ Fab** -.SώiM}V&8I'}oL"swr'oč&@$GzЇ=Bq  " CMS H{s} #JRR8H5 $3FKZ$ٝw9~=hJzR5B &!,)v ֤ !1d A6@%1Q(xt_lI 5#آP"f d0a<`hZhMY,k2"Jf( 2c(ED d4!A ; k?Dc@m3$b2^S'((ݴ!BqA޼_XPawh!ŴMC@H (/tކ: J=`E,= tJw7CDU$X$}VR61L՚ xӹ~hxcu!F!]{MĆhc[hk49,w0B%!2B&c+1 %<0/xv{G" 30/`PJV(t];8!Y"rAHOq, <`5**PCH@$H=>F Am$T]=8^4%# Hx"J|z]2 /wN9݆.+~AQN^]=_)#$h$dhxq1GaZF+mXpO~*^sOf<4 H%&Bd ilg|sd97w!YF3 J1CLcaT9! `*S8I o-pBYKKMΈ@k96e7!L&,Q s& Jy\ ΤclGQo!Р$+]!e[M3!5$ט7Y4ε%7@n7AG:t4K)h@Kq4>r*h*0{KAҝZv[፦jhQGZ/~n#)!<*&"2МqLEj22aa#pHAL!t{DHIP/0w =ZBG6|QA}==&E#T, %D'T!BETb z pRvvJ鵢L!j1 h@O0ݡ2|3eA&єRA G! IMe 7x`1UK4LWDbQH2 z@.;1wL"cJUC/!bU9^ m'/v `ƛ3Ҩ+"rk&)A:/ZɵTeet{MԞ /Mn̄j'+iU\'E7*,aӊ@7miFbq_ % hLI!ĀY "NcLLT9!:IdF zK Ї 2Y^1J7^ԒC6`i@迗bs(su?lTM$P?@!DE!<pA"*Ql%TS''@M5HD 4?bq>}R|d9 4% q2MYm,S8d'7A0B3 Az22D SdJ"$A!a JAQJDGC YUEB m+=;cgC"V=w2:Ƒd: <k#Zj BP' @tQUIEW=ƍ8s0kWv٭Ȇ$81`.p q+:}DAqjGCL%щdG_%/TP3W/M44ޮ}#B=U 9o̭61alFgفG?@Fc!c>`tSÄ]68nhHdmCJGڶ(Sfp $ 6;\J/GhJ21sR_萭+Onglp6:u;Jv`tRьid\~xԕYI/!IFC{d0ϓ9>aƛ~[5_?ϱ~mL()HWCJ0ǍViO^&%|MzO5ݙ $%8i"Gχʓrm (b+ ]n6`Ѕ(Y_8,^Ņ+HH"EtXYlҊ'{\`dT6D; ŝF͟cpN3U V ֑:հX#;?ok<> --zoЅ"ft튛`u0k(Ƿrҋ+m:XZ2 L"CB^n7;q <1OW-*(|"ט }TC2(P zy|<袒| N֖hAy"H}11stG=: } pM"?.vJd)?:',{˸-|=SA4iZpFѡCBsA X͓bZ(E ]1d1̸a rr}XV|&ʏt"egWٚYxn (LiN-4("Q0mo#F2W2VR=ˤ(LF7%z ځ!߸qiɉX NuB>*M{V<&2n8IL?Fk6DD(W+S40s/n7Ƶbʾِ[~zƩ˼^ӟKJʂ>̼ [}xF>OqvZSGO C4k$8;rpvO|= ̘.A4΁QρQD }} 8@Bi:XYaɬ RPC ,aan4 qGϣw(+ƘˇN_bdzbs ͵=AH퓥$;4bSs##>'MdxѢ >L:z^p{_\1wH(p|A$$$5K:U9ڰ1'!9 S8H9O;>8(&s2";{F4bb#A3,87d$GQ%PB,Yq؇*xS;n{F:b*Oa% 1 !@R ?e:=fsZl=J*H "P#HH JPPR%Ii 6m'BąrB!$7ڿlFdVa o?ƾÙB41,Z Պ'$` ΌZtL*HJ=*  !RQ1}Ue:)cjPA & 6YC;7FWH!( ) (jKB4!yE3漜ov=Ȇgtd><@Cm(iz0lk;CDk#'B@=Z7$s`MbFX>(V6ӝh7T4`=Ag~|1FHz&[B3 lzJzۿjsBh+|a܆8%=bBNEhew@/fnkyW6LZ-x0;U"dȔ '+4\ H ᪸ M̤70cEi) 44 .!P6EXh4Jd-.\"F14Ձ5!,i$8 lh FF0da$d{tPLI=e- F12O TT͈+pD7N; 107SLtf k%$=4>&L@;2Ɓ1+"e'8`dۤ nMԄf#f&C crX0 *mm6X2@ e2%cԪ 7d " 1LiEH,(r3 pŒH$A6R I lhu5ULd4% d⑨'Z0"܁p6(s`: F=5&Pm] %}K44hmPKѴtE5s ͭb/(ˉȟRKIB\*  1QR(iA aH bh" XibH) ehbZd""))%(*h(H Z& d hw8E$Ȃ,H҅kYb7ŋj9SF0 #9/:❣Hei-SuoH5S[h w0ŔCd5\2#LqZJQ,?7q@WӹrيؔrG,CkN17jyKLc}uxÔcFpk CX„Q,NQD2º I2JqaCF2@Ҙ\ff NYY3aqt!m(($@LEI2sӵBj4!"K^ar-S!@dYh,& tT@QHR8GߛwqhDrwJQzat!pzdqFy"Kmcؼ, d}1om/rNHqM f*`&0Ox`ϦKOI?_0ZQ 8)SNB < MR7 WӘL靝8LY0$+U?#S7_o++=Tm!5:XRR2 o6ϛe&H|! *xFWQS0MM c wd$#C"8$%Ur(À]\` Nld]Sg óQj#! ?#T%!`gSPuНg&–tCyT*AkDCɋe HAv;jn߻EGt>zHBH@ 'HD(V$R!c̡Lh!b,Cbyy:)kaȜdbg0?B J %T82(-=P] xc ?ƒp"83" Zp&Fcdp`;HfնHAGG^Q/>*͛x5"0<1 \d4%$與C"{*T( GR˩=KU1ݿQ; SS|Ġ_I(a<=FRu4!lGGRfij Y`k`~zrȉFgf5jdإT X:i&Ma $g..FS2Rnsvq.6Q![yYQFXp% V:msD9.AH dGcRH6Xۨ`[J!ֱL(Vai2Ǚ,u- m!jCVRtE3DfZHЮsU=, D,b` D D c8Hz5DP:q0 ț$ VFY,ϧ=g4p8DçRiAmf0HgGJuIN)PI5Hm(Ҏ!BlzfAADvbE 4mJM o|ه tL\(=0;מPMP Q iĉ8+=rYoO2!1 J #*glB.I7ZOD3 IgU )c!fPC+kBнXx_CST nd#5@o`I%c1LCaj"b`YHL`O>{JUP D/RP@eL`pG~ܒʄ"@$s[Qh3NGI!`|B9zXaEo-0hJndR0 /؜ΧA&u: NQ ;\ I;+^(SfvzjC_=\:X@@kX6& nGbN1X" siFH&4!]R R\`PcH o.OJ1.zi Ns0fL[H0#iB"@wUn/b<Ն@ +, ؜%^  M)BHE= "m2(F&rBo1@}0>kj]8Z%$>ףpwD2 *B2B*)| !)b$G햮:pt`2gAo) afGRgIѫ] t0a(Љ!\P|M8lϤҩ PT6-XCù"Wxfi] sP~P"!E@",05;%7W1A!R O5@Ci i U)DSF ?{@]h>ްMz'|0eJى%,Sz<xi `wxL>_?6*XSȁ,@Ag %o4b+ػ'/}bHj;bHӍi 4ا6@)K3@%,B"""^8(8Q<**pOx`ot ?TI3-K@ $2Д N}&/itrbff3F]K"i^Š"襢!PF VZ m 2O{Fbת%[3ʿIz!H`uKÎl&YlB2閐E4Ѱl?11EiW2/7pZ"B_iR޸{ZƉq[R9u s()v`wX,GѕQD$isuC0 Pr f$,F2ADZb=u YY-,1q:McmS 2XOz2թGrl͎@b:<Q~2_MMQjl/(L~3>ᵭURrEspIUϞnv,dk?D_6cyT`s Ѵe?upf1|G^~;j%Nm;ו-m>sػnIbњ[w]!͛^ټ`HtY!bP,c~ yrg'Fdgho+Yv>38BGg]4 ! ӓkMf0(ݽ؏>Ζ_?w!ĎI``I4lh)_=/+sMOFD\oNvԏ?7jo[Z1Gvw,:hic< L%,zCrf ^DNmzeF赤$5^5oD' ~p$צYC"CgB / 7ih N&rVr='jOвkR/9X ޻/62qf??&o>ci'N4;sk{%c8 Ȉ]hW:̊‚3Zu7!@{y V:n?5D=4"1M9gWݣ K^-˷Miqkfo(39^vfSڝ^!_^ Xϊ<[Χe懧9_u|t iͦ9G{vde6z݃r[3HU4 Z{= uz"^!OC2cͣ8{ Nzg1i${v2a󎙲G*A\Xd2:L8+"S11L@{N;bqFL^! @]0*>']@>6]OO8Yr#973&+r ܢKi6yFqץua\sǫ_eܗub˕nƒB'Nh;:%d'a nY~UT\js&+M,eص7~Rz 41hdwd~"V3z1˳ssSk\F sj;9f͒b@̴n_^ 6$N&|thvz(ͶP>9Fˏg7IWu2Q^^LkѻMВ< C8 K^ec|MF!Y5o˅a4ĒKކǑr Euh틤neF9$Ia/ft.g(DaX @=(=u5. a|Yݻ[rƀ`,3r&3cp zO^.N \ B$ -b6G2fC! 6&rDe{ݎ]削Deh$ [7a/+O|_`Kyѷdҙ8 K|l3T1:{ϱ{Orİ4&ð\ j_r3zQ:K~;41Oq(á$kPZ"2" 6mǸ o$QfI@ 0a=aNB g'*0ΰbaJs?ޫX?\UPU&ho d`Cَޞ΄e\pݤ!a'K a DM - d*\. `օsr@!M! X2$xAvͲ@ul q#@쎜`.S{݃VUp@\qZaݒTR$7Ao.؍*ٙ>܍h6 ֥boz~Tus2'&U~ihb$~>9k59b}۰Gb8̣-;z,*@S634f3sM87No#TPr 0wdWA&%2j>1i y'Pf. =cW T_s/zmo?͋rԅ{;3;zQe;411{owINb>qdЯ$ |7wbOrL20vE𧻓?̰+~p^z7/|=Av(=qtaX=Zgtv qkbd>Anc|ZkZ %d@ 1)n4IګiQ8 %B#wM.& $v8#R–1SbI\)[RRP u(YԺ:MAci~My8|MX2t"Kaʡ{s}~E B?ZF NF(bkqCuz`vM S}ߓ/璤qy,x=;Ӥ:,#fLL!N&~`k$(m<7݀xN@YN75 jpz:ڑI%l`^ZYR%PВy~ h ̦+`Y;)B:Nd>ܿ&7(E 36~71|7\3h bF4.lK|#yX$?eCÝ`c ZCpj 2atr-Ŕx8Y6p1ox1F\uo$KfhUM86qSX&3O!-*bhXt:d pJb@DЁd[3tR;QAl0q iahI jF\\bġDpĬ= ɳ*(MHdHG'^?o'J*5Z Gbui`9c}$qWAp 84'-N5NOh1Ggj\ fUe 3QA}L =~y"' $F:D|t4K$F&hK%&0"7"7 ̭7ˈd:E2-IHq ^ڢY"fE-hm)@p,%}RWxh3<#"nb3Z8FE:$a4+l2<,fµF\Gcù^pO@R!qHh H,8GzhRMD2'x{!UZTJ~=2 DZ͹$[7+LrdfE(n pgwBuP/t8ӟm7+GX$ h\7lpau0G{{#4JUJrpNсC82?yJZ( !AS *Id=ҝfCdZŒX,+,Q*4cC$+0hz67qb5`%q|f' 7 r66 eK(T] L=lEh({rv^;U-is M 3h `(/);K# #WE~rF4He_^=ݏh9kA{|{# mdE.CĜ3d^}^ cUt3Oh`} ":D"icG'!b!< !dY~Ɠn0Z"B()VT 43Ѓ" ZґETut B֔:JlB!h2=R Au&2̃8V H ByĈHJy.;G|`SAzZ5v?qyoƷ($C@CLJGaf LF!(&dFOSq3ǔl%:Jyfa,tσNRfFUo-` ` fKѰMhE>{4Y؏IM ωx`fZ!O Sz&ǒ3% ʾLM\ Ad< t'?Oṉ&ǡڳW a-_0z=BΧ'>m3 ف*Fl ֡:{;}-fr!G躴v L1ɢцdY8NI`|*CZ Z\QOT"#}G_O^kC c5[EuՂaEW{lmaRT03BIM$D\ hB*(К.q?20IJvHhӈ4gA. bxȄx5]d#{dQ @a$$?uvj*>o+DNl2 l`Zk鉈xv 3~`ZG8~뾡cGo#Tp@ zy>N?kY :kIb #=/!>H\Zso #A8,x?6pp& w'O&7j `fjq (Pe7HT!L-$a0yяB!0w2iKt45 `M(Çg DG~EXNG hF ѵH+F8wcI1]@$6)RdhNC~E .){k)-JH %:ƒ bF劀J>sЇxtB"J5zWuy툄G==BjˆJ'҉2(h]?wD <,KB0cȴJmF9XH<'!b33j[D lŒeWR01b`RA$$+,tAQ,2Gړu6[jUdhXiaQJ좥Al+`, B*t2'iF>FU1R1W!.2(s.d&R ; $ hc-zʹ7zymU;&*y8u.I|0~j:ZiO$ [’վ8Ro£RyyFӎ  pt&]uc6*}lH@!@SӴR=`r=:d$w~>/Łl'.<—=x։!C(ƦR@jT; oܯ~,!\`>2s0ŏ <_`4ņ'0"&QȈD;G0t!0P"т ԭ̊+)5k 31X9kMd0dJZG~Te QÝĺgX[BI)-+Mov\~G8ƫdGw<7݄ jyJ85HKME0>Ec `8:w1g3|ٻi#c*Ԏ46i#X :owaݥ=p/E$ (jˆM$Q >DdIn%tt@Aفb䆗QX? ?7vMɁ(^RE^EE>`l8Ot&skEƄHde*KKZJg9uw٬W P5@Pʎazf7ɱjC2RF` bA$iN,Jv "~fdx.6˪8rḻ)7a&R萊`)7>Yoϛz1N)H=$?jy?sTCe3B"Pn9QMAieIŬȞ#qxkŘz~*FR;CEQtO^T0DllXЖ *,RO & fk3"֋"UkWI9# $Î4a0O7-rpC [Φ;f8o!9]'E,%lb{jc&jrNʼn74e 0XmSK&&Йyy=ڐTK!ZaIz|g;ƚc`5!̂[-}z<n;TTIJPRS["NA{l$gwkUUVglAUpսqx\njqv lր)F2昆2Y& e $j sЫ\9Dx3! 2qø 0`7G2kN4S<cyK˙4; .:@2XqPc:14?I9&3̦%ͬ=bdqf`3Vv)D Ay \ͩwI0@t Ie*.l>0Oȃ)feNeY$S,ΕBqX<ټ>NU;gI ([L_;I6l:B %2>sP@Q-9{h5 a ͫys j5VHaTC٘A"yw-h.น,"omh5 i.͞q *+Bf$:>IӸbTbzSxJHϴBl9sTy!MH=M5<&ǓO8zpL@kvH.xh=[NmS{dc '.u{b|Tc}$4򎭩Bkt[턷эZP4x{.T<5(@bb&NuNvN ,vN>#)&PunDE&f]n,7d36(=fZĘ0.^sJeT*c2:)*b(wӎe;Ƭa>) <F!\$,3^(:fm6L| DScAz.U=7Z4XFlj($ӛ; ^乏y.5֦1L>zᤦ#d$4eA̫H1nJ;Jlv׷i\ I 尐fHQma7[ qheqT(BfYɬѢRd3 i3,p)“5*@@ H:s{@lsői%A)y.w~ed (Kq-bS4Yh Ӭd)?T]G5O٫{y3fX"dwИ~wzõ2dTQijLdj&N'i&]A}Kfp2&4{@pŜFs, 7ݐ=oxqFJӧ2R]M:㹧$:.P 9F!Qέ," ڢ@qW\Cimx"0YWybSnU-:(xvv)m;95bh|x35/;[N46|O~XWUTm>nƫlc+o5pv)ú2hg& F %]օ0AScE)t.W0 u*WC+w@\2imP4ġ#dzD`]L4vCN28 mM @`]\1 @F Ii "x'ĐҪEApw" cH4iR}=b!H$ İ|@{nMHe`\@pOp-43`x(rwv6F@= )gdX;As1;ZLȚtT\R\f@6  )"(h?I41HLzL}O=E1 n߱3'|X1iLg5lq$3$t"!@"?1Slg0D^H0)!0a(3}*2^:&];YQJ Ø]wh"QyH'!X( Fp-jTCAS Ϫ@tmzb*+D =3YԿAz0|' bhHG`_-u33Oֲ]]`B+ X$y REV!<8c28{ky_e-V#WY+f Bx@yhn%ɢOa{Li4!X[s]j 1HXxB*08x 힡,U(*"F>%q4APMMe24qG$͒}/6F/ 4)Tܟf.!?k9aԷK0KJ G0D (=zeyNƮH20r a!@R%*n\ $ PCR+$ZF 2B_OL"nZRD Add4Bnރ£5aMԕ f6` tYدCA!`C)FFaʏHZ;1F()Ge;/dQT_hp;&:k5$I9}FC\vAc3i~6m]{g$#'GX aޢ6ma{!sPxԎ",q:=F{p@{o< "J,Lwv;KcE-uPFjVeS7\ūɓ>:Eq6I<?;]c_'/bvu<IxUN$p8wH3G/g0l8zartUGi:Gz'xtTU]Wxj3.:kcV{9i*+zhew&5`a6\A;=eTePL{#N&)J7IَF7Y9HF((Ԫ&-,6pŘ2IأxEnZoicDV Z[(ۤƌCf%-  B B-m=27xme cbfbarfa!il P$N):=dy4w?)2ϏJ?4!7EEexl2ߞhdHqY„  ?]$|7KK!-oNPdԐAALf ĐD!fY&DqNO8Pk< %tN&" !*xMYCJ#UU%iV˜ӰqxY 1B'P \`A!P8 ^O B@ㄛ:?FǼ_P *IQP{K:'Oy=af+\ړ69x4- WsOi)ݘY3rs Ǖo2YnYJ8Ჶ_խf 8N3//Cq%MM(uaZ1$Ch 5F5$P@#<)3kp\mէh5@ TZL]49V|!7@@N1.PXQ `s>즥|qth"p;ZD呄 Xe1f ww}g:*L,xqaxy mA>h(=d:0$bUdBdd z9b|A5zX%2Z:bdAiC^92R`ع 3 䜾*G)= ;{J!^ sv#_R`=D ݷaC 2?ԲûoMXFȑ8ߏ(vu{^5C$@iN1xHOe1#ѭ5H)δR:,<X@զ~t̶cp`*0DdvPZ6 XN` ;דzv(H#&&ο>'~~NWOݭ{ o;2Xx|f/;)=HY5VJaIG9@ b@G!ha~ %ԥ}MÒlJ 5 Ԑ)|8SC8u|5D'euȘ/)>)7U:~5G:%Jx\$gŁDL L%-PԤ@x1bYQ>?1D3l-_ݟDx$SWP?E"u~PDbK^HfvM#DJb?D{BUatT=z:AbNQ `AEPd (w I~SmʞPe@D- onv|6TO)%P$e99`j&([|Z>*C|QVs|'MX{}Œm䢵M3=_2++~KZivfo Geh#64(2hϧ%Aœp 1ʳ:582FD3bJ5ih .\Tq8`q.}rNH"F` [@ R TVU T$ 69 H??m^Ȫ#v//53RuEBƑ(P׭D<1je=I Sb\6\jC DI }a?9%Zj|Sy ,%Y8(P=` p9w$RtUYô}'WFyƎD0e)<ٵ֤ %8IsFSFI,^B pMPքKHu;h"f|.2IT|/z >qo/Mh_y ny6XUDrOOS E b2g8~SA:"/G쉋 >lL'-mQ+ +y~*f,Y2DxuДBנ{ȦKA]fSJ(I:r}q;Qӻ0~fPiH?UjY쥚^fAg)[LEҗ7Yuad9`9cQU, ,"\QYh1U"c! -iɂsXc4iCO'kD851 zz-_N6#Ly&%')cF߉5M$" j3&$)"ڄcBH>אNXdC2ޟٺmB#0_fY5)A5-ݭ54@e=Q\gPl5T)-`BHbRBJE!$H( H JJoT+EPy{=?5;;sHr61ξ[-M>XLH4]C:SjSEg'^S~1({鄍ͧ{rC BZWɪw( Нϛ,~X=TIE]ވ(Fm m~;fpYu|+M`#NMݓ MpwjvIE{׃aQ܏.`s0 ~"B9r!˘𱖣M^)g+&bË%oaWIO+Va]/?7+*v q3G ,: s?hݻX̛du5)b,"ҫq9=J9EpkjK b+/"cBxKȬ'ggxŴ5a]\*wqm҇)wooXs 0K ub|0[b3K6KbԱ/b;斥w !!qru\/EZoW뫛;r2 {qB4WI4dML|A|| ]ܻφ˿2z?"O< )Q*T_ƅN"xLQΪ5U #B;`7ǹpsʷ?9^68/$}a/,f"ؗc>] Jn#vZJmE krTiX#wl_8*ߴ)k@%QRtgΓ'Jy|-IjapQ+JNgQUJPH10Ga+㆜*E{o9<7t"> YJ]/kC/g;ϰ<r`X[#sFB0j1\y,_ҭeaԭ t&c-ZaBa?i :]@Q?8k88XGq[`}7Ʃ ${E#ʗo  k7vg(>v߾txwyocgx".¿JTD|Յ'̞nLvrn-:Jv/p#˱@^9K}~vksʳ+;mZK * KDLH[+cx/ǚWUNګ6IO<<>I? AHeo#yЂ7&K_wRֿm_\&8ϯo;mFϫ^Q.bފ[c;]*䤟4swfѓ8οEW4`ܫcźl/JӲ_zTf3U "&7#+D8O 93&W_v6g~ԾA-޹xÐwT9bV\团hGB*Y2]4~=V}=nGLiRн /SBsJqC>07_=d5e뙲t=pNQMcsMXg Sy7g5?^Pe oϔ頞%'x\J֜R1~Om \j9u܈%h${@SF79qthǗ>24(鲙U$142hvY"$>9깟K=De2(*v09k3q%JOHCoіmNc{[Jc o; {īV Y<*سGڡF'8F>*@,p.mK sArK> oG8(GLGyh|\Ѝ߯/ ;.ygoi]Z=prO.UgåD[?8cxC TC߶/c6._.dfEnJSz׭qw;bʯ#qS,x޻[')R],$3K,K*U'bJ1fnyt5ped^@0cqS25bOdHFYzRL&{ 5J>Wow|c %dmgY=->- |hտq39_Bv|@WUuIƠqBif2n2Gnl[~Xl[fnmXAh ġOs;~?gڹsܡoxM#p}ڑ0a -͕l&tW.=X/)?zi35ɖկ Պ:k`7jq'MȌLXH=l%Y,qE G>Vª' b0BO^]5 #C.DLC]M,W[k/(w@/ʶy{5ÈlI:;2PVN`Pí]K#s3jZL/q8AOF4IXk4<|qOKi_ܧ_YTQR%x8i5Gc5hV1'oĄ8&>T6Ջl{eƸTvPGhG~ɕF*|ypƉpؚkO%pm7vS#nnpd԰0}<vhgZkk[ l5_yxf[w;.kc_bca%nصoX#.Ҿ7z6"ySBn+Ihs*<"ZȍWT'k%7T>wW\-E~RO,ݹr9)-z骓~Yz7r8>7hHG^/ ?k[s|n{AI%xq4һxף6Z~3CoZå<+w'K78k[97qœU )_֏VV]inŜt_ _?!p׵NsJ2[qSBBߌ%"###Jfnt$0FG0S{liC@:D0~JXާSŢ0 H+amfby?cPFsȑuF&)j Q66E Kپ9"ʵ70r1H, &z0F0>AC@L@L݌.F}=z:)SQXE~ p4j!&BY$bA++l~~p?!o12An ls'qB=;fߍ:Hl>=jkǶ񾌝uB,TQDB};=_q{f~Ԟ:WB 8yK'n[;e[x%PRF!aF62Ac9&Y&e՗ - *q}tDRJ X x.ßɗkhxu%1 L92~umI'@21H̀$SEkI P1r\;%͌LRiYZ` G΅@NA }Hve9%UxP$D V;gHr" EIx'a p_<֟^U3Yp,?Kgx=rO;!w LJuX!S|}%t JVh,.m ddNRr+oX:(Z<)/'X\/o"gM~s%D'[ ֫DTSJN7|%,KGDH*ӪV#Dav rY#0Kep:]~VBbt&Q8B>NK3Aa8 +=ɤxFU<LOBCLaIO IB^uʢ rTJOd 8 ΝLJRvx{z l;zUޗr3-CCkP[qm]]h8;5KMs5 [Yl$Ŭ%LL :TZ6'ЁU˙YŊ$GM2@>n ,dS#3Q}IP̄L&B.[d&WRM*\0iԃ@b 0,$ JJU`he%RWܜ0J#XCO[& Ld@SXUgYK%fC) j<MSǖ5xt҄l?2Z{k:y,Z o-¤(݂mOw+W*)*gLO> o/ +TuEӺ,N16sWf0P VODfA C*~>>7OH5eW7UpROC+w}~Z):PL ZO0ż%"Dl&˄ ƳبhB!cAxĊw Jjdl. HɍOcL :IF5֞ZGӊ $kcyd/}LRQAũ0D< &1(p%O) :bKd`)~*AB Zph|X03K a Ѡb8A>La<$%jbMwnvmĎp M~CXo\-ƫam.^j}SHA5eeh$WSV*`cTat"=^E"]mX6?mVIH냜_g=UH8^MҰ0afjs4Tq gg@d;'Tt3V+W7H9s*}Դ7/ (^zkϚDTRUWPHtig&m!JΗ+GaB=Cؼ21k'qD(^NS % Ӂ%Muq|LTfTWJWg:XUqLr\ie㣪@@-B2 Ƹdž>Y@gPޟ; BnZ!~jJ#Xl˞PKdL=Y qߏМIu8--0aufP,w.KNF,lLaeI0eTJ"K7e`B:yG\5kEU*`ņAO[;R4L4J6W>mF$J̜5>=#'[+;Sd-z|^LDIAHEqc:sւHV;uObQtUdj*4'`F=d@D%託!⽽2hY1Q>`1_A`)7xb#4]ybv۞%XM+ n5#y1q?O)8\aF2uluORф!xm7@Ԧ2ܢXhMZ)X:hfCI~u"eCTú>.5,CBMZ]#U'ЁTdT\b:F=FbH@tь OiXj氺 D'NQbxai}}00V Np$MhLLnpm~AztѼa0X5 JLN2Ja3^@O =KSd JBRdgc@O h :@)=)4~m2@,Z-4$,2&b9đ-K ޖO Uj&d"hb2l r=IdzI#mXKanG+c{)2ѻg_+{9R _t$vYB/Md|3A\byyZhsӭ9@hGL:-ov6˛ߛn'Zێ+\~{zk_2뉕cDH*O3: <#(bV#r GϢ\yJMNN)(Yo5_axhf#q3K;/o+n[AbXƏ]wS̬\{Y~ >|fi{8/ZXw[ͬn{x$*RܫW#ĹWuy2rdVv˿zlFƋ+ω5paK3L]ۥbٴû A&'QPW&i۱pq8HehP?"4΋E zm#S(F-A߹b iGn~{<r{(ܐe[f*X|w]BxQjďp п5VkIDZHe8YalDV< Vs}v^)fܜf\xopWUC)/̣K3BYcUB&/[F()R33j!%įm*C Cs ]FW֔ ,Tf{e ɉ / 5<3MKOSy +WqiA*n_n+g Hy7pr6_97i7zknX}Lí:s9b3OvnUڳeݞEOɵ[QKW]"w^㝟_7t,?˫w mIh'Y^œ̈ kFW/Z1|C+ڙ5?IOO5g1'-j+{bcBc,vڅ7ɽ# e'ro-1tGbKd$W-ʌ[@)BJk=W~&ߐFC,96TUGSu{)߷/_:兺oy}bTLvWX6ZmzsE(uCDٍ~?sf' uZJY\k@_oE}dr}qt'#S޲l3G5!blB5TzXe(S#bv.i3{"k>~tDS ʾNY0)/%Xtǽٙ*Rb1SZt XAI-mg&ڄD5&7F"[n5oF"&{jb?xbw0Xfw ^( Ɉss"ۖZsW|σ$T?e]s.^ľr=gn^gRGȂF{_9'K5%ySq3-r5;_Q/ٕ+:Vi$>~3KOzPG6ZaU>i+ʧCk,d+ҟ'C]b} oDX*G;sкA <3iuu>nsgY?>ܶ˿Ҿ1|]x)֘4Xy#=]7moSi=hXؖr'ߓzM;e03kykXHd]]`flM6wڙ?}O'˭>%.QnfxXVTו J|p;D<w cƿ7dc"q ?v~RS޽mݳh +#b^pLȉbO Ź߉q~ )/3ijoXF%[*gU!B+.9* }:Ot[("jZ;VHK%1.}x<Ǚ9T!-Sj'BD1B6O}?: pk$x0?g>^xu貈h皲TriҐe ނ%(e0d]%NؔpfT?-%^ԖiEWk|Pr.}-"u:ΒnSB6OƅeUCDK,nxAP76#>oOzPN˳hlz[R2XStk|n1GBjbe9Qy_F10;v;b)̉bPH/ S-}վПI|G͕bT̠J/ԃZK-jqSdސslbvD"ʝ3CszFsgTD+AH DzYjM$[X ЙXB̈r?qN .CSbW"$)[+=R VywpLoTZɊȔTFݱ⾮jKb*h)f"zyJ詐˗WY9Áܒ2Vd?a^Jԑ契Xs禀?t./"l"}J)<"iHeЩ LU&{T OzvsьWOKrJ-b\ F=4*yZٔ:HF"P7F [7{%|/n/&*aoVZ=Xz% Zl >3U>5bUUIX|Hz_C㩜5t>gS>\ލ 0@sЅZ[kQijo8T#M,~EwCQ/z+B\|֙n2}-E7f]Z'O:`'tSX:oͦ -_nϋkWa6e8 1jĭq!\8 ꡟqPnĴ4+EH!!HϠ2h]5)Q5d*\__6̽g,Vj9ҕ$xZpVT&N P58YhyxЕv>YUVgJS~D BWx|v=]ǰ|.);%I`^hZ< Zup(cKx}%J S|ͿR;&%Teڧ[hQgKN}`pmS/gK@-QGNC<04AVl)u?r|VboOd4xM&~n{]wzcY?npt押EV{`ϵkY⃅ƇOz,˷;EME)MVmuϹ%޾rgn^c7֑Vu_l22>YI,ҀC[˸DGFSϪZӝ"5G<^}ޔNɥ7NUDB/4Ls"ρ C y564 Si\.̬PުnjڰoVz֟YV_qRs+̺6 Vj3}@oPu:6* T-t)X}Lbf= ³ZjiÌ AH #i>zH/km o [֡;곕[ ZI7rվ}v=VZdrg\. _jؘZYǰB%4}jNӱ*}];RjwXlXt u=s>vRR^},$B͊,Jdp8heTZ^Ea`qtڂ)_\TOq= OhZ|TUq&R;ԉ)?A=ؾzRߝ)tL{]O/NC5p^@5R&)ũ'u yJi$>ق_])߼ S #55!7S,"o *ܤ]AON@EO< K]H#=*C ,(]d1Xb& RMs4T),rͽn4ϒ!%pѼ)/ d! j44ԁ32֖ e6PGMV Af +  {L o_!9LEv p(nnA,1z)#ǗƒHg-TZҖ!Oe"EvR7Ԕo2-wdiT 3`I-s[LjJβ4|Hw9r*'8R} {u),+q rv6f7h2t\ot7dM[*hxבd z$?]e hJBx3).Ncwllę|ML=^Hfӭ0y]+Y\=F+1nd PUN"҆gkDS!WȆ2 Ș?_|r7-K.:A0JbX^}9{K 0zf3A+@%hV>9Y5U8ӥ͵UrBTBB*T79Q;HY>b巷c&iU}/3pq;,ߎۓg@CH}pdezu=zdÙcTQb/:cf"-x@Qft?} $(RãI˔.MOpz,1Hq̍V"LQl(w.HLR1!1{7GOӋѢoeW~KFwC7ڕ赮n5:{[M^\2NoKҏ5ӏ~ƗM& T]0sPc qV1ETѯV3u\[͠J;6a[y妻]uּsSVӳO9k'RTL=dq(>'??s _>?Ӎ0Bx?}gcnE-ўMxKEXeυ_7vv,?sezvN13yoJ+t -rP~YXCğH-f-0ڹkm&N]h[nj&r3VZ4V+Wk# 0B!ZJEQbJj$? Quk)4+Y?ç[g{~$Ri2TE}nY;11#~eucKclDɈw%-+PT XUlh@0/ύ'hU_s@ 44)KHs dMDFcSBuPԀ+\FUy1TksJ9[QvXY^)-kت,V~=Qo-W s9!pJx#@ QlXUljQUȶ+_Rhj BiT> jZ65Ҙ@4b.3l (M)%s`@G}xg樓S(C`Y(Pe 9֚QHr?%?GL'z;J_ku@Ox 6 o\Z) W'+I)(֙"e%lZ̲)5N+O+IXO9 HIPK'(Q!Ƨfx`ya41B 6Ye\d{ FHu4uKqWHu|}DS`MR"Ol@z"Pm%1_k 9CJC}A$̑]κ6I0Dt,wۇ@J)C@t ʡSL6Ljja[c?&4&OՒ)=/´ t7fFl!s z Ԗ #і+`c#ohq;ey6Q !aR 0, p 52L``}NHbȋi ?]s`OP6I F[|Z, x93sdU"`8IY"sٻԽ3.dUXҔyPɮg9z4-̈QCV713I d"ObFeعPW*̓IMMJ&ጭ7D{TJڳ@`֮HUJDiښYL|NHPof O9ϡ@ i?%yY] 6ua\P'YwFºqP ̌[ueH'rܦP'6K\u3}0@샦R˩ !h.I"RHE*:M#!|90Voa)3^#9XhuSnIK/򯎜gN]gaղ_'ad"u< P۰DfaCya(`V5`ڣ vPhڻ%Ugo'VW»邘-TH$k + cD䂊T䬲$91Wqe\V`o),)>e TϹ_9 BJئg9?zȹP7@y|@@.^pVBHwV׊M Ct\(+XG.~Y^):北CRԁC \B=zkZ ّHc }qvXU$YYi& w/)ю㓈*PUz]RǺ5LhgӘbV`~ Btd(ʆrm5E ;i |}+wU.Q"q`;Epƃ˕a/5s]΋42>Qn~UhPKN Bb"%fJZCFmݻ2UnTH2ӺҦs] Dm9ַ֙Rka*4,֣Xm)uVܣ6nQFy Pḧ;#G&&ZsfCfH;L?>؀{:=s|P!rQ?_<=:?M|^2ID#RBә תfXr~AѣO p}Oٖ>vV'>_\OD'PQJ!4?;d?w?ct> ^!Q#tAgO?omi RH@õ:ώ<$=p`?u:=YP3'XPQ#U3=5{Be7'@=q&<`:q+ti})$D9XfDfSz hd끯l/?83P5b4=`x$W`0P)Bxssa> :c/w4BBC'|>29>p8>UT&q$۞hF" <څ(TVPۜѤr>R?O}[kڭ6Ы2MA5lfמyU`" 2 QotR@eE1|l^"d%5}(s\rO5QW.66dƒ6(5HH5FI2hhߕr1R2H&kcH4W9\k!fhb6Lh)}vƢ?^ Mk/ܨfM1E7Qd(IbmYvCY ~ rѱ^W15ۍ(EQRh.yy^WFέQq$*":<y|K-5_7FV,==W,Ms\ɒsƍXV2QDhnw^m*`#\"?({C:_qr8զ"hl_slꏻUD NpL.%O%}c%mZ@5ȼ~tsom,')Xn;!Շ4ׇ3X^=0;=z)(}STVvtIs *"@p]!  {z`m;5<e =w|ܚyZ>͝PrY a*hOyTWʪ{&(SUNR/P?Qrys=oy0X0,Sže@d5v(`Q X*~^ Xkwjg4H@&fCOzmO5yi7`T$(1Pf2>UU@遯k F׽n_ KY]BL1hA#kd*D҆?G IT?*" K BGUUm`] {,2&v<D:'=33F`bɰH.*}(v8׭Jf{oӾB+@I"čLPDb$; R7PPm$}TI3tH:Ni!/n؀xq{N8+'Yr''fR~Ev9#gQƌ N@|lE< -%|24آ<W3TF,T\u[wh0Oh<ʧj6O=ImfVUPuz\5΢FW{bAZFL=v ŒPP1{߱fƞծ/c=WT{SKq7QYx,J;zG|4 ?RrHTc>{"K*I Op d #8}vG]3Y]Zn:O'Gzٽ"q^,;$ {dz -Oo6Q!d$Zq}O@GglsH uX 8PeУԌ5h꤭bYɏ)sYگktb rW .yD|ߕ!h<OM8e#kE]Zdhߓ~XȐFc#BI"6lmTYb IRJVfIZ Fx rD ֐ʮTmU\[Rh b" DtlLѐڍfԕ,r*YP%^=>|O?PK&{?ϧ=g TE+I fEEPIU`0~߈f,PK~](=$ ^]A|z@sT.̢h{P K)}ẂOӶV2A~ {kOd^V?\_e795>+Q۳O}t(*kaQv-@a0ݺ[A[lRlM+X+!WN)mh  J_Z1SiS KLq5Tu%(@mTQ&$YNWZbfEP79sYݢTuͬ }O2bf^c5M \ChHr+F3%3&,XH$bLIL1S 4I@! %XHIH2S!L!)@2N!0D!a}SfvOi^P?̾c`h9˯G|y897>?>}OOk~ǷiDM?t"=k[R%b-hW5u_ᣌesgsf?I?aǯK]ߠ *Et ܫwC~lELa+kZkVd& :`Tsq.g >@l&`aoyF~zd'~CU-v= Fzx{?/%'6<; sXOz>F[E Ft4߽{Iq~WnMy}$N\IӍ,gܨP3S۱:})Pv?XNOܡO(;,,i?G=sR?wƼZ_~J&@JE*pĢJnj#m?¸E\кjfR 3yRn\>B+#[͵U[>(!Rڃ7 9Ko zf&i$Rq`w.6k~}$)*T7|Hfc<"q'ؤuQ:wQHe6 T7W?u$FD!oHd>!ʏFB±b ;s>bWG f*R׺ wJ(@f'h}b<)q @›qo>)@yzP<9L? ^oww]H S%^ MOR7R(Ǧo!fVa%(K i89`s{UrbT#LHmNВH$J#qt0(r A`W1Ck d)\i\e@HIh2\J0?B(1LÝ=BFL J}nH`~36dhyIutQ6ST8-WZp%yoܡȉV]& ,7]Ynma̓~xقVUo4\v+bNH6$dV]<:1E+uEQzـ .Τm"HmW&m5u"-k_kksrf5LMEijoGfQ` j:~N[ k:2[]ߖQ9i\J diMhȵk^ҭc3ɺAL&㲮Odl:B&?Zs=c;'  d~0ƲPM!}!ۨ׍վA|Xh brpNZs֙$, BDaP (׍%7yU#.89(nY6l1̝*SP9dj9M9 OuOnopib(NXDmJ~hc ~|wY86OqO{{acNJadsz%G /$͵/l;B*cNYu쇆o37ߒsr;>] $xbz8!xy봩ٴ@ř9(F 8̣fn [W(idk~]_3J  ,nC!7+u0YkYRh|X":+~INƔ%(tc]鰛C᠔2 $(SRt7+8SߍQPтJK* rP9C~{֝|)u_g+^tsKfhnSCn<&YVl l&}r ?#VBlMH^~Mꐼ^vp ״ryrVQ +GY`܇5߻ا'Ta'ћ8/Z]2kpBʶOKecW]=A[I_[oYOUdq2!gAӺ1mhO-F.>/b׵iA F^n;؈*&?Խr}Me,7vO dJ#Br0uC攜a4>]*1c3}40 dbR.o52z18DO13gQڇn|eZ׆wdv mPQ$7D-piLp΢Ux[@gnJ'^ `_k=m/%ֲsZ sp nvj{j nE!9S$Bg;zX'L9AIpX#6X<(*,޻a6tn=" mTcy &kLn@ DBL "+ë8yT&}r Z1%eN|t( k;F勞(:n 1=$ ym (H(6ϳ btvF$781 jwb*D.o M($L/=И!fu å>2 ;:_)RN.ndP⼪)^Ybɘ250f\ʄIY^GQ"i#/;qgۗ\[<#ϑ`Prulv*"g\Ύ;abJzKG}4A*ЗEw>z:EhD (P P&@$pwIR؇VJLf(8#Y%RC.ƲAQ3xcaxfj5%Rrh*w-BMu.Y>Az NfV:J+ۓtӕt$z,"Rᅠ FhިB$Ā@ B& `Nu ՙ.~wtugt5h{Y6^.ETѡRV 2P)b'*],,()3e_=CKOQtw&yty8ut~ 'Ӈ-A{63D9dSOs{ Ix cӜ7h&dXM.DKCME Qŧ頚EuA .ѓCRhf&|87z"¤pPad8> L|!s|HA=߅(N~'ZD \egde$ 7S_WkjS^cװq;龧_&xdn!xޡ|\OW$}>[4Ac1@Dr)!Q.c;kҐ(%Zd id)e29l!_!/F0L&=Vq֒a?I0&˟XN䂈C/9[|I3'MYc??YD>5ւk̙M?ZPXoÍoϝ!?D"AV q?{@@~#'|(\{b0 >?ÏǗ9h*YPQY׏o)DBI0ʡyX>'?1w4I{8K_6^ hV :1';;_:JћZ2w*Ӈ}~G`C)#ļ>#uMur?N~q԰xg Ȉi>H Qe~LX[8r9U[ܺ;6i\;s>6yt+~v5Q{FBBU E KTV"aP]:**chN"z è?? &ONS@9e&5\RQ˿@ˣ&Iۧ[m:0ps۴{g58zt1@6">uRHTTFʣ_f}b+0@_{4O]% DBѱi"((~d^^Q1;Yd(jz}6]O\3x ?1 Bd&׃?> -#zbvTB㹾~e'oqom7 RSdZ÷,{mE~6ޤW:Βq"zRJAngc鯏!'a!"/H%#RB+~m+V"C#DTAF4FFbQPP xo/ 3LubBI@!9ů{.I/ov*8/_y^s؜{8'n O;3Y~p2z +6Gnx=EŇmQ}l;ɩkmw JD-4DOO.4`]S=D9KAhdNH `f=}/aLVR?JomoEUU7eAv6.ɤ^8{fGtyb[H 6û6DDmRT!8I@ ^tSb*P bnCi`h=IT*wXQt> ?/\DIib"vMā 4eLZ#~qJ-;*E*3x7+PKZ1RF^ml6嚐jT[4nc'̆Q*K%fow4(4> gw^(JWQ.ڍ횳I[k(9Uf8Ҙ5%l;V3 z27՚zg:HtzVYS=%mξ%}4O@PI0=+S}> OS0" dYN31?ܙ aVžI""Nvɩey06|i Ϭ;lŶ< a`SuR|WJXeç|9iolCLvT9GÆ+А(֝aĥgP~T5G0J݇t3),^&)d_%b>Y:èa8TŸ v:"e?n4'>(dv" TZIΐI=KM]/5oɥ?r9w㵜p{y*@Wch1D!J<ĕ-صxz*9u2f\wӆkQ `\ mbLV-E͍=4Xxf'ʟqFi4سN Xϋ.ਁ&k;,2jCϳXkyWRX< C{&o'[\FQ'̓2;ٵC;ꊾK iZ(XoQ֮4VЋF >|Nr): :͸8wdSZt˔m7"a M_mRDeLBLU  D{9sntCja@k.PS@W$ <9s<lj6 vk%mq;.Dj\ 4v PDoE#) ~2c20Bb*;5?-FG{X! ?hh39ޮ +rȳJt%OD`G*@َZp=~ĥ6Ҵ~`p =')ZIF 2񪍇L(C2PAnΛγ Ռ~ 28Ab X5dG)^N힛 ;.E-~|j:^馻.aU0g~J՜~Y h2o=Rh{ Njm;`X xg?}X Y 5n! '(?##8 3E 3vb $z &Nsg*k)-n ݠ@Z&;x?Bl[7l~ýiYvSB袭T;kr3*^uT)Ds;ř׼е@|$ F?i`(b*,Lq!mB](U#I$[:yJ !Y9sYf{?O#zv4L8J 0x=FeNQ3Nu`29dC'Ӓ)Ւ59Q_r#O`f?. Jq30hWoݪ@'\'dP 4zNdV'9LiGL>rJD\sc['28>\_˕oWlѳG@/:Z &!)~;ErNTAr7E@IB/4* L?APoT,"䪜!rT)6̻{w;̦FH}z-fXC(C2BT@#և!F~/eOLJdM"AAGdi*G/("feZ&\2#H܉ue,zdUGp`T;byj瞸S:+?F>!|sb4(}z8Ã?n '$<s (_6AOg3Xy~pgb@v^ +;ѩVy$B !צw *A!LOud<(˸ă!G<-6nB z^O;mN(|M9/M >_1U~197{9))hdW^,DE z ^gw@/7[yIl$jfnӆ֑UjtےDBFD\#ncg- FT zz2HoF 2޲6'(rڝY9zvp)Y$ryĄZU@wE>ҟҋ V߳3!Q*aXZ=5gmb_Kwt|!2 I}BL/締+p ! po*[Z5 isǹpP}9wt**u24ଷSϕoi(Z [l|ѿˌkY b5fvCI<ӅbNCe~{xfLOE)Q=4_c~}TLJ++7v£MaU9Z803si!YC, jXaUM`cj+/_ՀZGAbV]_&A)XV #MO18"d[rfB'J|vuŦX 'Bi)ȒJ 椛#'^08׃wƫccͲ1ْM010&ole2V Fwz~0㠲kiVn,e^~ZAe33~+őbɀQ|` Q\Ktv ޘ^xFHUc3CNTՙ6˯"Me]H:ٻ)!uvOzM҇Z (tXED, bkMkUU_)K("Qň+; B3?'S(ρzJE_ 1%OkI]$1>o = Kۿ8}<3ίtӦ[RȈx.vqaM}~??>I3($,A(De@ @ +;QK#iϮ 36 3g.,sX"=nukؔP*=H2RtՠoV]gAkQ!CL/5Qޒ˨RIBT>77i$t0O`u]U kyg_6@pI% bA"|%Ok[tyMߊy!CB:O [k)EVa= 迥9< qc$ӍF):c*J qq!a+Ue A'} ]Ҳ#E&S݋ );k2o=jg+!l嬡bԖzh`ۦ"e&B?,u;bL>xJPRt2wAj[QjJ({U&4sITW:pB䶮Z^h$*Z 2^e ϖҸ 'L3F"!"lϜ㝇)Vyᢲ4(֗ ڱ)^) `;:QdrWvJE0*fSvkAzWk2 d<6AI6J*5Irnxi-]'>T&#"0fy<ޚѡν8+MT+1WI i44%8>6΢J4si\X]EgTrlY8&6419\@߇Zݸ_:gpӆmK3{8ezbuI%3C=+ 8Ą0O5ֲE:Mr\4!j9OC=W557UO?Tl8l X Ǻ'j+-.\9kZᰏs20sRq#$̟/wp=^txDjOJp*҇;Z|?w]sZ>W|/QUS=QõFxo 6"Xݣk[&f(J._ց7(z9B Q7-t4?ha懃9 %Ǯr|XSgb#?<+ cpKG|RD݉r^?ݫ7xk +)eh a`$ ^L= n.`sebx~FUfP*\(% P{^'L.%1%QDuFkK%/Z:8 xlXrK,{xv Mt/F롔/Ƽ_DsW[4}U !~(] ҭ˪ CI/؂Hlrac3=s,^4QY9C{{bwIY\:i A:nU *r[[%#SՒlJBTE^PUl1 #-3]-3A<g9/LKef6 URyFТR$ͫQrm *Nؔ Y}?C/Mf2)gc;d\ Bd3*ZV#?cP}6[(^]cY~^#@ާéX6lyŬ/6bݏY[%IͨYjkBj,'x@" ! ll+O0{B5yOdP\Pm#k!95a$BFP #|2zP8wB4ꗴ8TchA3S@EVIR03M`Ho&"if~dr)ZqR)VŨXX{؝9j^Fxi2Q2HbX) K2DL5Y XrRSld)00tqIJ"͛,!ar-"E7&f ( *$ AܴDJ 4 I,b4-ZcbOrN@܊RxbB^ ?LHSуQ?yz_VoVJz`l5=;te*%VN~$.%'.I?g1 UCfԄϑJ%ƙ-oVIl8RNOiAmj[ XU~6/A!ԳZ הHnj$a.hT3k6qYŠ=8?Ei/6w7V9IUrtymY{(ƴ5͍WPMHb;.cì^Iye[%->l4[Ug>樗Cx DZqMy):qϠU+#/{cz|]J1L6X.R`~~!Εջa**;if L_M) ĜIG~?K$1_aizw<,ֽ]{$t`m:I7][5dSbx\҃ : Z8NreZ2ͦHSΑ;;VcLUE U*"g5a|w3Gm{+ədIQ̩@ _PP(+7aS)w z3I%|Ǘp@B6C ( 4{]RHZj u1,iBH {3ێ oR}HH]4(߅C#¸ϻ12/vLRIsń5,JLf\s:?+L2c =- J(\O1 qk~W.h G#9ԝmsHPѐ`kK}׎΃`$,7 gCv#V.]t5;BЪLP\6='KIG7yaH ӂXh@,/ MJs#Xvj7WTZ@ YGMS0Kr#GmHaF5dRBХe"|% ׯ~;z裨G|qKK}8k5UUt(F i0TS? 70F1 ]jֿ9XΕUX:w*(|QQgzwod? _ˈ_W"59,LPЎ,mwXWmƢ~LhH?Z(Ǻ]L-M4ւ B&$R{ y='}};5llӳڡ <9|$i)+e]8w.~)(\6zY L(y~0ޡ.9U'-}θy2b#WClo>YK@>j^BbV#\I=|p_ Fvv_s0{w$A U$?t8q#O"ppz;>.d9_ K \L ʱZH{Gn{H5lOP۬O^{otZ dQ?߯yBs:+Î+жwf~,_kZ!kQ*sRby)Vf/$/Nje$}.-+WLRE"AacUҚ9.Fe*^.K /Fu٣-Qb[\ D8OM 0Ueɩd~/~̣Exx೒H| ĄZtk {3֒C ph(Yтl}+:]ğ%Ntc;So_7I}0HĀX)Ԧe6nh5hd)C(HFQwdա(v|c4w+_ "yč{4$PAA@o\YT^Xl`.@@Yq6!ݗicy'}N Ub/AmZWLlJC > qb}=\2:k(0̀4VQᜀ Ѥls3ܩ@QNO)zR( zצ44 +,rOS[W)]*!@(INT{ĺF&WA:0T+gcY`kK;|@f7)n/–y}!"U!iO3[ oGQCN%KըdYJ6᠟Лi{zMia1 o(JNz5n+Bb!m)}^O9qrծnc}L]Ks!|A֭J TV ӈG )4Qj:D1{C'u [I]m1!毚 AerjH[RƖ sEI2UŤ:&RX8Yqyp`G7 vIk yF.~ޗuw1]`s~20)!xt>`ǎ?/{˅[V8|O(1*3K~kzںF'6cD`iBAzR( ?G 8\\ ~ Jn_=}\N׿>a--U*@T34:f'mv7$ ~ W?Zoܜ<9Ilyl }׿n3ۍ& tm&V 6~CmW}쐠UXHkF<'ITII&iq)':emDÃ݂{86J: #>;myZ_3y/Q7"4[ зfJ Eiv+k!DyDE5R7cgo׎]ʩ^L^xNd|%kWPS'=,>&ېcv xP7 jpCh}Ab!fx( |';}rW:Ā'Z"Y8YT צ:TŻB74T52A':NB T/*߳6Z22 H6BD< .ptɚ .;86iUʐň6xpDMHD>eEYb$ oONذdRFY_Sm5RqTn8X 6 wiBQ02: 'WU9LLsɄQZxQVSqA!YHKa}J !%ڭRr[ry ^a~$01tώIjaXv0r!I躝4^i$tEi2(8 D`QXr$>JhLOǬ>^5!/ِ󏮙݇q<ʶP# df ԫ٘9̳"0ΜKL=QS.% Q4.} "ݍK{ ?Fu6aP\,I%=z,BK ̱E"+ lFTSY5#ʜWUsԧGA\XXѮhhڦͳs;a@l]so%ɃqP3>q}Jl5y|Z իU {&3;,_-Y"e_,!榯euziJL٩;Z,hq8R9$V]c.r~NBtv,:#Mط:}=Hf;l` [)BXJ)-]g55 Ck~񔧛 ;v(=/A7m}9|TTe=`RS ߝcwf0.jykOXTOj jÏ%n)PdD򭕂T^.md.1bvz QJ44uJJ6quȟ*DHT]1rdpQMru.u#ѻ˅sY϶~(A&˞U%W`kl]5hzSŬ Hjilc=oTkȸshG"j]keQѭ߆HJux <ь4jbjM-UWjL%;y઄y$dBG6rm]&X5_?EۢIB\8- s8{3HΤ8YO(Lysk 茄;nQG!=" ׾Oz4ҳòT3?tw?l}5F8&܂aeTk&HȤN( dI2uo]jq\\3yƱӿYe\kY[EOUM*VZͰ_q XݤQo 1CwGH2{g*"璒xۢ'ÑDEF&cRЇ.+)?Xvgˏ|i("B"("qE^]p=f.ȧW^5;ңaQ)'❽hD@DQb@V֤`,`dsn6{w]eTF *@k^:r_O{Q-އ}_bX=g{ԕ>?BTr glb.ΚeiTb\>ЄF`ƪ~9SpX7K :>\6)OS1^OۢH$@@B9DnGTž [3e KM!@@ΡoYˢ0Ю5Y ZA&E'Mה!(3 fB Idu6!S%jpJ 2nuB@7v\ ,vdB Q>I2I17 Ť^^'&/ރCI7%4U. L&3*_'9\W~pz{=q}u=y?kJ@)VB-G6ϝk ق 9%*8{:_{jku qa¬;k ̅gTG3u2e~i#-ag^ooN{l%:),$ReќMY&,3ʌ' Q\4XД.4Duo*&?-dIwu UۄXmDgx4psOľ~cSݕ,A ]_;ѹ:J\rAI'7Ie9ߓdl*)OH3´hӛ箴 XvX"#IF`wG(AR@(M.Dzs qj4 ?u}qݾ*ʜ J#z JY`=ni*;tOd$ُqg٤MH%VO9VP[Qu(` DL ,53}AqBx FhN颙NaKo_~:.XMOHċ0KC¼$,Xz@o5Ǿ\`L#+ks1 WED2'?̹.k{ZY @?M#$Y B.ꫛkR ZcbU`W NktMXo VyȐAeC3H~N̄Ȍ B,~k)X54CG_H6.l><) (xh׍mQ[Nﺠbv : +AyrL%&S!.:6EX$BCLwe,YM ow'+\TVE@R;msLGzdl'h)-A.^j`.oUfԔ}D,K|`Īk 2+)PӒˆ%3q}SM !SWzSky5>updd¯#&pU]L/ A>@  %)`@:5.= SN .EW?gu/B#8qH:G!ڗDf+s^QAlC6~hwcG;{W ޳Y|d?ܪ#%pbZaa)[K;R{(DՅ%H"kK@b=W+C#w7IM2vZf3&y2*}4C'%: p +QFF|T: L4yNB;8QK1yc1v,ߺl~|޷Z=oEݷw{Zs47Wо.RpvR\bdg&P R!`Yr\=v"лDRnk;X݅&03pRjVe80;?8(!T:(ZN(t9mL)%J|!HLCI{ki4/g}w(;FẌ[G3$**呢;N:Z5eboWob7M4f)9ZN󙱜(R9XNvRyOK.f&8ZIj=ĭ-bҪVzjژdzEF 3w+ٖJkq:CZ"tK,E?9{RCc ]&vW.w[ԄĘQ\w&Ԋנ^ђ{ G $3iȳY XD|Zww+x;\"?s6e*[@rmUWAD@M[I֫Ӣ;mWcHwCylR\CPD[NUT D C(`}hf濩ӦV*^Eq@ѹ:KՓxLpU|.z?TD@s))yѾYNRrRk$CNr~C7>_|wL֒ysRP @@&~v~t2: AdOwty,wPn=VvY /wonfeuQ-V@rRW0B%Djr,4.Yjϕ&liCkd7rà7^a,S~{/99 G[؆8 ^Hm3 ewU@R/\=LnW~m4$?~[i2O|0 y$qnItnkϐ2dINj \vnEi? :$mqgS> 7z#j"2&@/19?]*% )p4{RK"_#]@Ro0FK+Q(N k:G &J*kG +Tc F/+4M\?+?fl 2xbGf% >MpVܗ.6mf@T_ ,J)5*XO3Q q|&}IX[{(^ vÜ$\BYPuQit$Q+ 6ޕ~UF̱6帞2׶L.y)QLlۉUk,G4pO1& *qAGpغ*JMC<[_/ A-0aD(YYGmSwZbˋ3QTשLNdg`hEϋ=e)921"*|tk׃{熤W"Eͷ$4X6m<,5tmi1[IWh֏ߏ FG7ə(?pЈSBGG?xK"K5?C#D%aq˯óo< Ўc@c1 Gzt@Poʟ$U6Ϡ-uRu(i:tz2Aܞ?g 6odUQ޳zud1#KF@|_I`9l7/Cš}|hZ?چ%mRB '{o:9d XJhm3#[jj S*ŋѨlkX-5jX֞뜪"R _G}0vC͓bAAMB-WF˭E5\Oן*ҵ=};8j肿(r-b4%T4m;R~4J~ZA=(ȹ?2v<`~HRLH@h#?fO^^5@dF(X ?)?(D1e?.i_⫔׆֗ฃ s=ftO;]"lx}DڇxHYS>ӣ?V;]KGoY#RjS ?B26 qWj(ʒ&~aW)|e[/2܊i׈D4ѴOڷI_P4D/蘦e*aTO~)O}VA @]_ցd7Y33@V ' L@}J( ҇ed eƸ9)5@oQWZz1Ɇx0o"iIz(T|]* XEWox. h@LҨJ.$WMwEEo6~^(vJ3C=o;^)7H~*_I5(A}*R Mïߤz}O~rB?6#PR{$7.ba+v|e쇳ɳ6oADE {m|LISv{[[HdO>XenO#J|%(ka y^p@:2Btg&Ç6 A}I'g%hCxn7^r a>\ N0ַTTOtjC|)z@#_"SQ)T'^~FGJ_r*_u/'tnJDbXPqS@r@ @?D(jT!P2PBIz7IM]iEyb&e}IH*B@i*AѦ*u7RVlYڱ$)B c&-`(J4$ ")%`rR! D2h&ǛӄDVH9JBWm$fEwmFb}{y&vّEr9v-hV蘵wg7j˫*6iGn]34RP_2E٥%>*EhFI5UUF%TrA0 *X?4+!d4LuLP'Vf4,p !}xe;ġH4,Kq tOrz*8!6)F#a~+ݥ͐聊xlɦw(t;ըy Ph$_By$7GY9 bD o鼘z18I(Y7;8:-3Ԡ0D%˒o.!Lg[d`{4b!>a!wqQԄdHGmcG.@+ l6>C08>t)Q Xew1-eeen`mBi VT  8(tvh_zu@sAZ?LH"DH* R@Dʷ,Vn W]\51ºc6R/zܬ#XЖ1؆hvYTBFJ[3o\ݒ,$YQfG.QnrI)4`f—utMSO1y&bEK-#ˣ BQj2ۧN+tC䂽@LZl| rĚSOeBSm"~X0RF@?fO>ZG(a/6;I'P8s+ѷJ.*OnI ovUoo?^|ty5Fe2mTmyck6*l@ tJAB PRn, ۦs@Ԭ*k;0+?Ϣo>p,tT CH i]J(RBRY"ɮ^KIܙT`R>Y QE_ZlE. Bml,-ғ0d.%Yel"Y;R}^+JZԳݣZrY*qU8kJZeLm@d̒RNdi(M"VDzT#"3fH6@bv<ɰαݥ_.. o'c[>/fQsC\XLV%):ֆ $pg_< f쇒Lu(IЕ=!w8E]"ڿ|g͉U3N)L_:ҽ%*j/S<5Ks>׿i{flI)n%D7[hff耟5_joo{ .xIՌAY'dE !AvRv𣚪Jެwa ;]\᧭ugTKƸ4ZJa:׿(BnW[ ܭvrj6nޝܪ OnGb #a6vd OB d9v@+Q%4H ĄN sPT!at4)422#p dۇoMvv@ikI)a^Qe!UM)^k*/ee7ޜ9siGɘ|nt_I2Yd?CR|_bUHVp ϕS3&jGLe]WB2Z'Zj+F Bӊl./0!L!+, =9ķ] | > ʥRDnĆ$Mk pZVSbEz ^J*iQheE=c"yD|f1 H\bfG4*~mK/m]YVHISpqv;m;q!^`W֊HHW?ů}SL{ì!Bogog`?/mG:Q ,yqP~FdPy$>:UY3CJa>~7ǃ\@fy!|~r { #9)óUU*Bb[ .S^!=%oN*\NÃhx]>{ͧ5OYNhC6P>~_s+ sI}|'9ۑ-Vތ6w$Eja2(J! Ai@&GQ{Go]G(4A@} sp6Hi)gB9Gd唆Z]o] $ Wi;h+'lI0/"gJUNlRM"3@D.?xqpo&^@qW)yg*[*5Y+\ߗXN%~\0،E".隊jUSck٧]rBͷB8zI uOmzC0zMg뫫ο/8J`uZ9HhwTWJ0 `cUDfä  C'*XN4gQ)GKekq?]3 /ǔ>(6=>xPwBC4X%]$:U}}Jl^'x]0uo'.o/ g[j(Ȓ6¹@Ď=L _[m!H$MJ}oF֓W AMA5TqYi@!^:APb AGw!ۭBUƊhM^JxIESij̜OCApt."%p _6/-( 6 ; ߛ:#h)4Onzaϑm0]ڷ s9^/th0K{ؽhDAvz2N#et'FeiT~HĠ?~49b,%jaGlc{>E9,Q!wFf9VL|ֱhCf((JR40DSH$JtU6z"n>iZ9^ܵ%rJ5,a}U@b\UV漳7u'1WY꘏1}:. ) љmPVMډZt{"OBJ:hB(>+49u oQ]vP,A1WA($jPEM#Fb!M5g A$,Mն# M%Mvtp;8`Ö[:/(ñ*,w(a$So%208P}*f ʬ:sD9̠H*bAJ;`@bb`Jji;T;B9h83x?)ɣG(}=OU;8NN4T  EW5ݗcBg_qsa4p{eV=Xv x,HOCi#ŝڧTb:̘pTn)^4?؉\?vF>UZ W˃ KV4QWiGp$$qД ̄B %1vWaDP ȳR(4\$Gfz='fA93Dz|5P7KC) azХ;tX)`P pNŞ.J0% U5N(2Q4rrIDԳL8:G}Conj +T }XȎ0;*"X! (5ǽ`0$PqT 8Sɧ`-d QEjG fM\9S"vs7g'|~cURE`5~٪FBibp)X 21$)^X> Uh* ˔S|>%P7=8erQ<ξ0PC\&{$:܈jw:,-FK{sG-ck &D*yiwgAۓɅ ^mb]Q$-n"݃ZXS?lGHIb"N*$|Ϸ_2j~W MبВ > 59&"t29_aۋvJhl:FzH',}7;jsɇz_Ӱ^ C|~gyn@RrC=hL?@7&k .@댎fR`,pJ}m_vSYR A"dWXE"_5tB@rW*CXhڝIIx}(C$H]1b+Fz*$*{Jq, Gg8fŋ=UF:I)E(_ك&AUȪBt(Ls[Xb7PaX)V4o)S傽|$#kYYG MeQC gP9K}c) T@)'RSqZQFWq/B]6УUekXfcL>t5sġpF$-C #߹{DˆɦDDz0:lȑAfd |)NR25Xq\f.05x"1K!$dadh-"E$9NJ`O]~&@V5D\H*&@QG{RFz0g=~VҎj[J*q4%1{W6g9%ssTzPEYY"9%} q< (d4Ljcdg Hl7!Յàa{#:)Bb x&CyJ#CZ Ad٠ tp8JR(e"j D9}ޛ,;Vw,QWמtORw:D<'u P?t1)OqDKZ$k(NxL\iքun[\vy ^܌"9=~*ky=N~VMDMjb*vP 9*&d%_YT |mvD+\c;PCŠO:d 5Q`coⳠ M keKPRR0 mGmeq[> ΡhzuPYaFHH&E0xWХ*k!ǜV+r|fg̿|74"JTj +LQhoj١&]w rW5^ ) }e,薧]!OVIv @1V" @H0@?s?c16܅G/;#Og1`WN{m^v7^ڟRJG];ו>8?0WP2")-^Zk f z;۰|4w%c8I+y T$*P}߭gv֊<{fy۲>T6y"K.|xU_?)3`Е7>1G%B4+<|TL]~ؼUP $9/Nw5Pc2P ?c̻O LٗƜ~O幬gh&? SFwMޔ:C&=;KHTjH_Ѿ_ޝ/ME@%FĆnA۳Txܯr yJ3@:->_-i=PE.ό59IQ`/+ 4c_/W(yX[^1UI[NQ 12:(6<5OwX>sۿL gg3c <%ʩ^༠nhf\j{x(k}Sy!ʑBfiHLaCuW{Voă|E \Q88kLaͪ8PYfz]q}EPW~ⵉCC|Hzm,ũ_pq}~J.Bh2<z[Lp&W\m}+gk1vF3TXۻ/8bUNQ9/K1:÷<ۏ pzblXs]ZIn7)SpMv^gK\6eu=Q0n&T$tLDuH2v+ !A(J+#6'ԸU.(a͛a̷9(Z`6`_Y]LF&i՛J/ Öb za)Dg1;neHtT#ISL 7Z I%784FL=ef{<6v[׸7P53s6qI~Q'&wSq.baïS[{$?<:T٫*uB}7}vD ?"$_m֩ٱϗ)~d{%kAe? wrN1!!' s=&"8-F,2u&RnnvkwWZNjEߠ%E>>؀JRȏJ>~*bH^=N9EDB?V C '~&EV?7N|~كHaP]"9iٸe\봫_ه_hk˟sШܢZj˃-\Q[[-tBS6чam%\y E۬O~CҬUJt^񭻝WPùU.y4wP,Y~߭ d-!9>jUtWŹ|}P8KJnթ~62XOf+ǯn|hpdY|PeUPai @:]7{nj(v煑gh%L@nFzp8xq>7փaioVԫ0}M l( x-/,O=3Mlj[#Qt^YH%;^VNy-W˟*m1sḌ6L@gg^hxd{;lm-9Avf da\븗}7їM:|%0ӜrCSۤ2\3|6c1 Bu=Ҥm%U{CqT2WTrn0c'ނŤ %IVi91{zIu#òӵ||%jn[$ Wȥ=77.Tl0;)>yW:,!-Aeͥ(2 0ҙc:cE_+Nf>J~rGX>#1 ٨5oD;h?Qc 8gu{j/"S w>td8 L#O[OކӺKΑČwP %Tu9xۄ9ea*dte|HdmvqFy7/!] *";GTH}#uE#<ӄbC=bKE,e5S+t]*W~:\CJqv#ZiڟB4#奩!(bqn۰ʛbY{hewta^u#k.=zgZ3che՘{|ve[^ IYK_nnKԜcR-5sኬQK4oRb]wKQޠx ޘr;F_G->TO_W.-}=O{yG6t e'@3/"3(Zh fXNT1B);GM>xW>>7x 6J ;Km.S#\-B' JL<~JcN5U":ؓS= *Rf$ѽl Q~-de1d6UVe}6^E1|Lk2ۻKAÔ},X6Zw.Ţ?j&@DQDsTRR@!ۣrI:aRƼZ]&zdGht/ Pz3P-Ϭzy+M}S'3+M 5P~́* K2'3YMn!{Ʉc6YL`ތ*mK=ҏ[nF!{Cyuj{g!%m|m(Gp;4qlvTi7==XhѴEC:{e.{8Yɼ;Qy(̹s?.fvn=}j;/ny\;eҝp>[bYq{l{pPtY/"a׷_caGwiYz~p!"o߭|}+o w<{52=xp];=Tӊ_ïA>y5v|6#7^y=rc^YNv* 3fOv9F Wvvscy|nR%ǔRI/kKV>~Jm4.Xx娸#:so[2uf4e`Ig#Aro&g9Ɠ2WdTGc}*sd?g11pNԞ#ǵ@$zɦWc&ǘU|j+vx ߗ}9࡬M*.yX\XdMޝCaߧֺYPC 9hv{2YW\~`|ꉴwQuBS&grx#P4"G^f~,ײ:?R I~<@<1״!ҁÞť2`'A (Ae~3a h'+v>=|OpNrvRJxm)խ8Pֽ*nk_ҟCk 9bƳl ٫`l>tjǍ[~k?>>& t\ӏ|msyy׍3fe@|>PPKUp8 Hubn ׫7ɑQ|P!\*s|+ ɽY`_* <\IbM,-#y>0gc?U /RցyלyGE$#A+y~W ô@d|{PZuYz!Em:f·/~_OaKxvdъv5 ٵՇLWb^?ToQ_y^?o-/^#~zyEvJ=caP5ޟDɢty63yo3w9\sZ̿T)ƞ=|Qp ҌWH`lvt&ڢҨokN}sxOޑ &Py.́I0seԢ+޼ބup~CB$Gsdl0A)uV$BuA@.1S<W ifl%؂`IGia#4*;'Bue/^oV-+'+iqza;J*^ǝ,_L] sۈ`1Mj|zEF8|t PڤyJo)t߂H}$ϔ .^^t9QQĘ3ϳQ=: g.J*SM,wpe%zzKWƻW^~XێAſ9rzzz^ܷ`o} !{eܵڭ{k hg'w }EڀxrQ 7Қ$RDNm,=;4ߊ<2G>V+_So_.s=2u=78 T5G>=q75 l(<ËACry%.p쒍TMC}(VG"Cih,G_PB rfF@P͹r<]VPm]9&><+|͖X_t8Pyz? >n-N3߀iN]XՎ>B28cMV`9(yd@ \KMlG{ќw\fqI8{r'9 %vj(WR֖_ϲojǩ=8r{[A RitФkUHT(ۏ!;'HN,̵۠Wh߅Y 使M(ddtP/[b쾒 ԓithکnI1PPvu<grz Z=;7eٷI7ҙgmM?nޗTMNJ!ߐR#Lӡ4#5:RX~jUEa)65ϱ)FG GKʗlU~kFvH_cfyt{=ep[\v5d5Xv֕l:+ @V(W0f/~x~ۦpr d/[l}# 1J} &|轂ٷNmMr!z Ĺet|v́ʬ:S ?%{hADq Od9e2V˛|J¾Fz/O,feel~[Y3e`8 Z^oV+/7l\r\~yKxϪcʾzNuckq\۞yM9DP6Yt4ykABpgJK*S?3J|x9ŷ&K:iau<뷣kU_韪|s~BZˍ+L$uo[]oUˍQ 0jt:Ntp|4 Fֱl-m;|cT񵮰bz{<mp;z^-˹WI ܻ[Gׇ .\AUƙҀ|X0ܬCG7~Ȑo詟mMR[hf]gݏ[?k|Z=KPr0零˽0XS^ rw;_qk<<1j}(=pr]_Cyҿ+} xA*: Ske=ITYeG#i}'u)oҹ58aPTppr`v䵣[Ӏz]2\ 1wx2?G1oI{SOooH\=Hoa?>L97݉Ⱦ8 gsnĉ/5! YilnZ}Z#pҏ'xv9zvEGXpӖX Ԏ^dx/{U}^#Kb|LWݴwSd$7*JÓ D%:Es_'}c~q]2Whʒ<9&1H޽-:R4s1ow2ι[/s;Sh7< 󸮹3mǝ7Zsvv>Z?!xJgCTFT;_k8Y_.q]+wkgN96Ϟx3]TbH<˒%26*5 OZ_!Wgcz} 1z}#(TIx.A*YQ(REA{lK,}OσB{ >PV  iOSbgyÓ*va=NM*"#m Z ̗BB ?'ڜ}_4BUI CTVGZ捍M$XƂ 6 ԂV6eb+Ib-EDT[A52hɠl0 AIh)"Ԃ9(ҭ-@J1hmEѤ͛%$H&0&$Ed!eY2cclj*EclcDFbbC%4aHQCecLI5VMB4PhMXƤɂfZk4X(j6ڂŌEZ#24*4$jFV,m4mm;QIj3~+M*Ѡbl[71-PmXZ5 mEصI LkFT[͂"4Y%-Q4mF 5RUBy&%H 6H@!YS%(~0(|eT?QO %2NjZRt§q &FM%B2Ԇd2amNdĒXyDlO#jyjBfJ4f*5R6i-+_@L5 D #r2 Vmh.j`(#%*%"d㒫Z00 $FQ(PdaM , rSP02I*I6냐JM2IFڽ5ԴJJ 64ک2F@GY$3D Y_ 4-.!ᐳ֕QjgIUy6T dUUD(~`6 ЗO d?L)_~|!ɳ_s?o%͗ugG3]?8R○t?ϐ/;iF(azC_7׿)?ل4? k;)W`YEكP* ɓAah:U4晥ZU׷:|$lR Nt q_C-h&j*濯4SWи9 (7@2+^-/m)F9>+Ϧy֒{㰸Dr@]{vhԘHyĨͺlfߝiAQK٩uEJpED~F6}OBq)/]4R:RB7?{%QH3+9M}ߤ*4j'/(}wh(m>0Rt|?n[O^-ْZXɽWpeI? Aj #{|yEi{MS_}6!ټSk`7q`ح.Zx8)!)KF%㰁3( !ncDS7o⤆fc֋ c9y0>kPL.kE®1?{y}z:_?޼iP*&'ܰG&o08z8I'oo4]ϧ%Zdye_!DK A/ǯAӶ;؝~:3HH<6b8(Q>S Qy-ǖQ˨tȄ#΀bc t(0n1 oKz!hBB|. ` |3G!+4QxMc7!) @nyK_ B$ 8X_ȥ732պz(D*!@;y}˳;{ː;י+dKj͉M ѓCPF:6uo[?8GubSXWp]ufUU8~8ޡ11ώG\p†mKW*s~TENr`HE^ɾww_ &UX [T{QI qM4ԘZ {>^^(8|4Ep;gmeKVv:hШB~~ڞ\ȪUJ>U~ UAWו~0>ƒDoRSEFD:|PNGJlcCWkJ5ӃJk`=F_z'U?5CkyCc~ ̢&aQ~~GKLψ ߕ;|,g"*Gd9ԠmpI:cJxDfiVZqTrp]L?WIn6wN[~#S&y[AA)/KOL;iw%ݒyR;’ߗouYʙIF=#kFM;~! ;SPO&T,Q℟ː2:izpoCRRDU{;2" {uC'sPN{7AN#@|rȎߚrwj9BIw@::i˾ho\%P;~<[cU 쭠:2`]:Ҋ?(4:gp/~GDWzOj}9xOWwaJ)u T#_g] hxnG@..qCw{TLV21h(by(cpTaCd(pץ Q_W|J"])ʄyrSm;DQV!HiY{m} Ox~8CO>SlT:{3jW;ߟ{a:A .YC}[&b3EQ9 սz>C~ѰfdFE6 m,;Yꪀ?yOW/rϜ o^!)EjRy@}{wT|YΜ4ݳ¹.̀`h=U mQu&I2yփޒ*me'UA]Pzd,B)(V;}@-0Ywpej]v "2)C+ R!EX7n#_Qgw>ȫIO^Y^|g~Ygb>͌% 5QJ(/D( "U-y M:}}p=h1 NΗP$OJ5HLt$qJXbHȄP8^8Nqzݜӄ~ q SPqtux1ߗ$` -#=,h3BT]/=u]}pQ_*uMzv #AgၘzlÄߺ@<+M"v2k9X7F#Cnɶ;'4+C *7 CK@ ti0? /C=Ύ+ykh]Q *Gj5Nﯲ^*CR@K&.w|h ݘID6gF*qhj+ fg_6t~م~##)-gDL},^%]~"޼U Ij&sh%rEdpIq6R%aZ\/$I= dh Ed\{#q6U8Qt*v>| IwVAj;zepSphiiD k<*H:S+ Jt 5~NoFê1HdX̀*gx$*Pl5U.Y|R+6eVT|hVW_6 P,+H/5~Q~^>WsXtOGdOнÖ2c[A/"Ty9~Yك䞔#Tfd&BuJ_yn7'.{b)ѦZScՆEP3Em s"V^$"YO  g&u?,5S{0wG8yk4b;KM=LOPLJ0F0jwIߏ7ԍJ  e.| cЏxd4RHSzuj9Kj Dt幚x%m5L}鈴Mp!1yR ATJWkg Bq3,P?Dfk5Yj'MI9@]eX2m9gO&Ͽϝ>Զ 0TQy;7Cb^/~Uh^cpB(HSI-/<Ӻ/-=Ef@e,Ï!U3t'>!_՗>yŸ(:8T=b, ORYeg&ƣy));b<pYǭFGmˇ˔|>ؿ~@2>u-%Lz=(T'f@yhLKG c$yn"}}pF] Y`+S Q3 $<pxZyg[5xGdc( 8r7 Qx:q*F4 R&!s~{`";5euƥjGvڴCK Ê[yPpOKHQ̎E9 ގ(62ΈQ,~Xƃ=!!R|B2 ]J ҉ 3R^Ty@bPcۃQAQ3g^  )CO[r:v~n±|u׍81=(9?5qcC5hpaEb,9>{9xn&u3z{5EϹ]SSKE@9b !DAu*!/T׎yǖz ԝ;"SsE#&v 8e ݦE>!(1@ QqK͸ʁ>K]𥙹hUr!^Zcӻ* \(ms^)I~Z`4[5qW7>pf& ~/TQԏguAr6yOO7*u/z^Dܟ9 % R;3tλDrJLs;\r",;ppO"#?ҟ_#"TO8 E06OZo^aQDEO#d,V@0~3B9)JyCJwTSs;~OwE(hWÙ7(>?tY;'K5C+h"&*t)bFV uT:B& z@GJ ׃iъJ򞋎 (MNt2rz[RO.=_%I <c0!K:&3wТW=hҬq6HNs~Yu)nD>d+uZT(#:+ /,guDDZ U]b".8$'mЂv88wkf={ LU tl#&q 2sQGg `vzϺ1K{z$'$9*>u4xT;K+uú*4pּ0(GI'PSb4*򢣗EPhM҅|3zNb2z:8GַMR:hS]$'S>8'fL(Րϑ9ۉа` ldPszTrWC^΃Fy_lٚc06A\ȡšHCUVa=iqk4,̼80ݻUl fb Sy-:) `e\0̔變vG6{J{w s: ㆼO:UzL0±n^yPtM@PJHJ5͋,8PNXS_IK*gH0ʔNN8`44ZT3YVNZKWp4b$8 <0:TRPu>W>+9}I*O!8]G-ZHU#Qy 6=ih6 jv[3 >HmT&!y*ov>UtUX{$6 5H7uQc9^f"bqPthp24MV,SDI&pZ…E(l]pQ h P]Jx߆Z=o-K ٺ (px;w(sӦfAI|ÿ^g;O MFe-* (>Gi"x"* 0@n_l'Sؚ+v'p}ݜ7)Ot 'r]:DV:w"J¤/AM:eJQFT @gW-k56Іa>G9ϋu ZW9rJL*p \+}Y∵ֹ⾼U`ȝDXq, rŒ&`uj3LaIMx<<@ɍ$.gGU]}ps"`dv>Z_,ðt3הHrb)>"X=&mC" /ʌIU4,$9Î&y>ql=LvҦ+__vs3T4QǍ-pC(Ǚ٥{B}P>(6Dˣ}9{0}jlx8hDLH){Ng7ijj 8\2Sܩ`r *>- ~p痯)nUV824xDkOgn%3pPkB#ʕ4uozW^8ǽ(4 F:aMcg%d=~*xB]e2z޼B!GGĥ WHRRSۥiCQXAOdW0"qҏ;3fbH@='{8zXq[<ȈÈ/Gͧq<#x3Mu=9D!`pxz,U?"(ϐ߿׏eQV\&o""J$:lʒÎwgzp.@}y 1Q܉w)H@p Xg{"TY2xAa؃]xþmB E-ڮ+F gVQuP4f4A+S:J $F`0HՇ5ŸUԅLҠip5*k۴t<(g 6Dt!Gd:xvo&G@@!mt<uv*׻nEZU68=A²wVZNq,:XO8/~Z-QM{'iKWq"E}g!;J&ײ=aqdwg.bL?&؟VRZ{&_'g*ûCBkN PD%exӪYfUD~T;[;-T0[U Bnv^YqZsw/Z]IHˊլw͆r.'@"R>"Ҷ4Y?YP8=Mx|T "!M|sYZmhfQ5iԉ- -tD^}/3mkw$?+zvL+xq;}-#^֮'Wk{V>t^J&&v-2YS*dhK%)+ۼ(sh`g2(e$MbH*5WՖ; !Iޡg9עUV7ޓ'{E7^)+e7#;&OՐs;zYg-qA)+)B2YECPUC>DșzC:ێO QܨH`2n?sp)ee}hR%3rCi78J&_JFеNA jB 7b`@͂il@Nп!8 B}|Gf- ?ǙWIx9$ REix#ADF,?@OJUUgTxUOYf;цmmIg?ŝ|O'kL<~?,D"FL,' ̩!uzE쏉GKqXSK,گWDᦿz?sAMmqȫpj HU )MQעn2 TƚՖ$^lIgfmsOsFH5 )1mXF֔|41<W,ARwz5_'dYKY+c b.i4reH9.r%"r8mEĖy6Zx5n(֙nzPVKk;>/^UxnZZ#2‰[ 3-P&{)*Se(Yjq)@&.^Y-s՜4uor.QDSW!.=8[s΄,[m5M,&71W-N&j2-ֆELĬڏGQ.F(x[٢^u6Ĵ"18gθx1-)DEhiJ9r\>cSsL>$fS5*Ws8)3bY*КUCxg5VZ[85z9׺{&"ɪ5.uHkMm!)PS2yN兝i$۠N{eɛ!5.#6YjRjs67}xyO \'ݣ}MzDt 0i |AvPFZovUN$S~e!qUWvO(_$ *^ͪj*#6JUx1p>A0*8pk((QE8u{vu࿐QL#N#{mNy:yMO2OlG+BW: 3Kwyly<9I<2IN[mݟ6a {${yú6y% U*/5+ U}/!$;jUb}CEDQB!nUwU ?]N6S0}}\;U(?MzE׵ 6ǻ |@ݾ?* ]`^R?$T߮aZy__>UQ8 ?̆$4A˫^q#YwkrҀC^NjTJ-f^k#/urK$D$:-HYN?`<8#*ȗQ1:^;{!yKKj4\a_g8aX ~ r]BVЍ>w~E 0W d\wz]dfGD p7C4ߴr xo![*xcoxX7?T>/?qГ>v~C}u^? )0 U;Y1-p)]@'y}eZqhNPgCp TJ}b"JSzfXnv_f=8o"y/~@x ?gH<~&l0}8b?@7צ@AGO0(ޕo1DD|RyY&M&OӞ3 d Ϯ\]D޿A :;R""osNgmgO537 C O=Ǿj5_ ?_鳌<=NDFXD@B)[f0 e`C'8N!&ڐ"Cg" g/SU?rԃeĠ٧QeNڳ8G b+Tqa g.Է9O0?dA[bdRBkh: +4snv#X[ˮjnԯzlċW|_vMݷbQq?FD׵M C=ȕJ"pOY $8>!R)gCcHJhR@ysbBexf6@4#"#pu 0HD~J0&J ݃ &z#'>S|$*m+e5\榚ZVMV-%Y>$7ȈH m k&l[lj*+km[4X@ض1 }(+IŊ6X5QQcEEf-jBTm1?E "h$%+w?kry{_%2AT ?p7~}_vb4:mM H_ދ`ؖaģRz0hB4LZ0u3=䈀vX#\Wki~D(wPZspߜH׎K;gMd}/_姴9.`ѿ4Qn=CRPx>N?(TD+K+՗.E@8/1?x0MnB K{6>?~i˴Z?Dt[h9ӧ7^)-P&}WtDl3J)DO7.||~otDW\[ }Ig Dou0;]ٿb?:]6cfSbR pAt?Ǣ?*PC߬ݙQ%'JuRB(ْxQRA!?+Ԑ.g~?y5Tp xD@-IMz9r]ry֝ vUݎ]]t8SN:yvkr{o:8@)G ZXˆ GaHqŚTARJ_w9 g}ߓ?(Ƞ(ml9uuuϞO*27(gG~|;$QE@P~If3TJ \<gpL0A*i"΂~=JU~ ZPX?cEP 27J-nmQ&2DDݯJ &>ZJ ,??~Y)7ZNeT]~zZAfHxݼvӜ8)h+,op+3u|W~;]dYtnZsP+a¶ Ptݟ}"߶%NUSDU`L zW !Rfǀ(Ҝ UPpTR`ySYiyoQ5Ħ p v_eFRir ϷꘜU0Ro4ňnl Z+v>49w GQw\Iԙ"u!;E%FrϏgχ$( Dd{(˛ݘ1MɎv61#UTiI!z m#YߋmR\#湺z:X5Y`fP T !f %!?^:d3P; P{HEUdyϥ~ PIUh(P V\i?09 X b&192sϴv1 JUiaWzYi@(Pr 6, OG⨟8Ψݟ"6bLzl(up!d7 %BYr?G%]Br*f2tĘ&߳3=o|>\j+aL g)_ٖC2`[֧B.Ӟs:E~H0.> x#GiPabX$rȮX; v~IYE}\_x'N_$8!P#W m=iA{X =>wORF1'N?;y#ā2\=`qY %xw| Hؤ{)Xp:yV Š| Qs1\`aYҁ9dx3+'e3Y_X';9~&/yM1a M4$_}ޯ2 Pi%--,.=?66mr5Zڋ/P{_{ ?b~Z}? uqN\[m֞Xlb ֍dtK=J%̬ϽD&,m>r#]a3*I/9 DiL䉵km+r>"je{6ϕfcV};hYlrHw"Z{fsIt_kS'FHU~;"Z@sg($XbvU\94Ы/qJmۈJ_a_5> EK=o-hz sJd5QH-lHH~BaW@>Q3˿ <:ǒiwׁLKyj#-`NחѸ*x7=@޸~8M /FP"wq=q>rlKIby(AAiA?'oS_tU/趹ҙqbPj|/WAB}_ `I ]ҜZӛ[Xd :R'hQL@Ri76YOӨ:3I>.ݝ[/ՍUE$EPm,ݐ {w/ N *E*"e5^$K/H0}zں]Vw-uR<jR d@]/HL Q}Wvg^@b@8@t>tﴽ#rJ,',?@˽Hr?5*u)v@]+Bu(2QOOb7t!( > 0ՃuTʅpCKDnrO-\{ؗ^o%~0`+tn ovYǨFz{۬X1|N-76^S\j6![>{[ko kzKexivox.\ey$GJUn ]W=Y+@S꣸ J=λla G/~ 6CYfVϠJ RwW܇SBx8BCX)w*HeAȣDԏm{H=&GqͻS9_鏏ANeոxNᥙո>V T]ce)Q0O&$wHXy\)qGp<Ҝ$X+3*z(1K(a%iLmn>kG$}Q.4<Ue_]~.dtܪצ"ygA|Z&2fax#6>욐džυʎ]__oWsMҲJ[{)ĮF9=g9rqtӭ3цOUYY)"1|z=WUR#ûwVBÕuze`9ITs&ò]۝sz+udcv7kS@xdhmeg6!ڿ1^R)1!wbSV%!X9jejyyyq儳z9=WHUF8*^=Mf95g>uWZ.%ڣNux(tLi\+7{G]J@!@^]n)Qt" йBftj֯ B6U5)7vuߦpEjk#wҲmmz%Z-w7t S c7ap_}/iAu8mJ-#̹43` c,5-@P B}#Z58 5Tr^כ EaV)~(skU^P,]"'Վ bFq8KNLҘ=djw.;\ڒ9͙'qv }>iv}ҙ΅Q<^pNW<پ7G[aO5X)*RO+NK܃HHne~QS\,^PFANŘ1^.afߣOV{gL<%r$!&kZIjYFW+IhXG#㌢PJ)/me6yp^)%L $t+TF';}|[u0$+],Q j2~:ұ|vWTNTFJfy H{&~mA!aPH >enW{XzɯNS[7.{uv9h6:+hifͅ (!w`]l"RV5۬GGc(jtfdKlz/k)1N(boǧ*F.沼gfmfM }N ywsԈ2V1uziZqX(&9yS&PZ/d֊DAΌ9@fU&TJ:5f so4FAk߄$|r(c߷,QFP5Z9<W ?cm}bB&{l<ةsᔌ"f/w"Jr0\S^-m;!4nBaެU@}6&>43a"v Ί&d̠ SiC2Ky8<5㍙ۻsTE$qQGa6)<Ά2OgrS'{yjjEć=oZCpĹCW]I} MQAی ɕcnT]efLE~t$(Dmj*a] Dˑ<9[BOFkR3d Y9,ak:uC?~,80Q59U? 1^O=ܮwwY'yyBlhƒQD0˺'pɬ[ex)3L/cay>h5ȔVB`{Uc>>L80h6aȤm0O% 8n%%+Y/짷aA M !PM}.d[K[$TM*G (~;t8syzֲjTY{&•n@^2h0hyr4d6v3̋7.0`FQ27`]E֪u]/魵OM,w͓W>U56Wi!P1-o kVU1 Ó1"rPoϓ {{sL5kH~S[7ЩB -#=+u+ix$^f򤃞U[ ({Ʌ+Q!t-X[;=pc 'Ah`5bYIp|3XY,PǩRy*ǪPHU(VŁ Z^ ֓8lJ9I YzNeE^è7 ?3Z)Klwjϴ=yyG Y.ϝ9kGfB]s[{vS\Bo=[!0wqnVU~ҟ#جaRc~"a@H;q:dN|!"=>5i`^~d6|ypa`-&Cc w3X2LqVJp2yg1ӗ[]dNKf;V|4ZI3i|>;[ XuZ] `zhv F^;NŽ󧅗Y)>M|fuOa:pe[ӡ?ahfZ/R$% l?ɧQHbV݇V豣p n,V`kHKʱ,gzKS(_~0:j3':+bǵTP(P.surG*l{'LbK>iC7Nuz)*Y(X CnԳ kd']ˇ'>ǸhNDaY7PJ|wJB?[As6+,.Tm^kHy}n>yh ξ5Φ@s='O' 51B {t3e9R4W1(_cbqÉAB-S,'3u"E(cE/ "b\С_xS.4AfgI]Ɖ5gh QJvo!gS3u70Fy7`'g~7c *yHQ> .VW}b)w><'ٺ?jĀ}kMc'VcSBvB}(y4EzA6<5DGb,>,;ș@3mcճ:G4\V,rh@q^RJѺOjhCVwhdknwD\+ʹMFݫ=,J/MoD*~èFWslfR#m@4~1 [hfw7OW8@ta84WTri^_؋־/iƦ BUyiR>H PHMRHOt80Ten:[5.Ӧ8Km+3_z;c#OO]FnF4_QJmX;j;gLYrƅW陌t1 6OScHTԩ\7y[6 ۸jKe#e"~]NҚ5o3Lm?b .W_˧"пrqsSfd$V{{{XVOe 0v?)MduH{},5  /1><>/'|u~h?nRwcǧIB(Tgyc @@ $D,G^fN#0ʭ6/<@?ɇtZcd[E^Jnzt#\yaɟ݄LǢu γ_s,l>=q{ɵkSdQkKJ0H%(H@镘3h\PG@?!O0iQ F`f`A݁MM!̝9XĻiC u^.,Bm#ThncuH9¡aXee,M20[LU1ы֪#+ iKKKJZ#pktQ0UBB boiMV扤)eJ:kn%0.dyL'j "S3cJ^Ds((-kRYTX Jd)غ-*S3G`Qk16(Y[-ڐOr>V1, k(0e54U;VRC0(ߔɺҠQ*J5^EFk*pCܑ. QTeݮgn4#&&;oJ.+Fڶ>}}Pδ9*< dGrIGdr(C }MarߡAHBq𲰬+#2CXQ P!Aa dN$S%0b R I¬co.TyW* RN`!ceAX29 Cd0*Na2`Ze,C$ <_h"Ov"""! @XVd;ΫqPHrPitЈnLA5 T|mm HO;9Эt`FI5 uR|dd2MXPAt!8 P܆Dx(@ ̍&IN@5jY1D\cc fH ( %I` GY %rԙœ %@̨AC[(dsԜH C ^im,-Qa&:a@؟Jy3dAe?(R\ *J{Ȁ$^j H'҉1p#k"0-v 'ΟB>Јv!>?`tBBCN0toȇs!t$ f8n=^H p,S;ntG!#\p'ԁ=IH`=T;{΀a؏¿s0mP%߁ nfndJhĊ"4#"v|3cL{:/c- S:4 )EV!(B<鳡=|C^B=N{ <! _) AP^e< v!by!p?<>`(<N(}=Gp utİ3l>>@ 2 /a )}ADBjix) p;t?tC;PPj)$?1<deY۱3tx>G~XH> ~4<&ޢ#FL.?9/@ěNY&P/Ԁ˘BpH;<37Q||}>t|#p=42lY'sC'cۡ~3M3|4[u~AäX[j,)!uc$PfX R?QP=`tOD#ˆ< Ґ7<0>J")(aR[d--hتd@h< %Ol Y+ _4d?LEu=OZ>dU@L %`5Pb M$!OOT0k[^7ҁ@)o4J$hX Mn߯(10%R,"G,;u:=pgm-HV⁀й,4I&G9:M K膎к :HhZ5Qkh՚kh+Bk *6Ŧy{*f"*T}UfP(c2 <޴v|(|0? ܣsY4UPΗa`"74a/u8;l1 C0Ҵ$^gaƑ )mUooø3 vKO:fch +npt`UutJTқe5pիV ">iu*ۼ bT6\ܴjѪY.)t8i>=ǹ@ fz#b! =@RvQ6^cIBR=I6|O48!O֝By;臂vS!ItIhxTpvL>ʆ%N| \u㼩чxbjv E N3w^An$(!8@N.H7]GB6ŋ);~N̨ysO_Ҭgzb E#'՞s9OwF@#>]oav3!w\\zeUp"S֪.>4~} 3}|{^N;$WѢ8d]JNQ>Bdi T;+nۜFA]_o%jk~el;:KD+i\bnZszsj/yLRBsVe 㺯ׁMﶍiqW(6؄*E6I@ WO00# NCF:qCLd{%3{g9ϑn0[lu2tQs8n36xu8.'DfC'}EQ7 rAB 1_x=:JbG THN)-%d>;D=~HRGĂEQp-Ir#8g B DyzXTM ?}TDVo !!M7 9:CDv Ogst%h⌡ Jw~j 7_0lhoS&SۺvNh!p`Cp}".+=PQCϩqpBOAS\a!3 &&GV{fnBuI8@HntHsͶZXq,p87 ,l2Uq%B,* o7< "0`$a0/Cau $8J"~AT{]p + &̾;N8z!;g xL|z5ĵSi/r7=/t}YBe/+oQU:tVPY:+8h/lbcak`oaOT'q5Txb ewzWUضr]rnP"=/XhJ?küǝ9?uqZCz^-U}< hN~ wlw+D,!uv*Y:f#k8H+^*VU]Y.۪-O4ujnLpeY).Z6xɤx}UG/tƘ(tF~* +)ޠPZ-]QHg4rw4 (DIaz'<v{u0)W:;"*Gúb?3O=1NaOSRNa) H7c F $"xy| z"?ɅNFSrѦ_i$5K e^60XeSӢFz/=YTtBNm1 )F~㝛 OPaŀ P~BQت4}~H^A>8%A3Ÿ1B8/i#t 6 XYѠ1 zr::Ҥ# =8 /bӟ[}ӬmݻjXo߮-X~zrt:;\AiWC=Vr8Ҝ/p.B l}h}@F~5(nB~=^{0؍(ُ}BDD [7G b{ma; ;͎G(ћ)(ieyMC6B_)lv"$w#uDDV]bmeHhh;`j O,D"z B`xP(HG] H/_ NON{cbA/k1)߼c 9!L!"vY=CG6>XJM_}mâz1U6=v!ȗT},l澧a EtOxF`"%:|#ҞO>M=D\ l]1\뉆`}OpD==y9^~54`b<"q5p!T^+p^DypbTͶYSV5]E#S z@(ElYQt6GQP]_{ Sg@܏B>hպMOLywnw֞ _6pM[$ӻ7d«c KhT*b H͝ (> ?^cS:$8x{ ;`8qr9YBSi&JXC84-1(V:&II,%l`ܻ(r|a:EL2=)~ hMR/IAR-lnTT>ݬ 8u*==IMR9 gL :[d,B6`RR f"dE?8~%izHs{}wEȡ+lh˷ ȄzsJ?ueR9@Ii{?SOt! \3;$L!Cxgq #y|A*|QqSf2h2)1"@~,|0XG)H~@:!o%:`8TK $J"4h BĂj]H @ 1!њ#U>W~ds= 7<v!/JcCމ>94lkEGHySF+8Bc˨43ɠILxUFX!'A6Zجv /{@։ m>&F+hiODC`IJHLwÆbJAq@wHkT>dv0hŁ}C[.c[QvPz/x4Bahk%F,x)u5h5BጯNOp_j+C0y&rC>JeѰӾCO!b'C,CyM҂ Zi{O:"w; BlFJD`mCCLE&v S8]acc'$rG9_MG;`մe&L-6zۘύ,;==;'s3.C!"xj#FkVce\:KRq >A#p"r9s<(:JxU"b#аǨd8C#EYTz`UT D4 x,!/b`k!h;<)|N8 &L3FC}(r,aߚ90DUQU7^HRCL qOWv<v۪? -lu;@ac^+ۡ}Ɉ>6Dj 9isi,,!YH'8l?UT34 hEeK8D9;\dg*ЍɸPa=)F(O`b)Բ#@lS2KxОoDfYPKįsi{鍈H5A[|vRn˶c]C?Mh'K>qtR@D(" ha <#1 }8f>KKC@|ӡ{ZC|8'DCa }z!=[@NdD#9P@@RQ=( bb@ g<0is%`r2G8mμ1 xTP r G9~^P j{{h<#;Pq0"e|<l% WߞAa?u"%&""WI=Ҍ;>E< Á'dנC%ျ%'ycIOq@pѭ Qi?E@R|7ZNjJRwۑWUdc\~rQM3-۱~!ELy33L5%!!I,"&,aQH?6iSz PHĄ*{XE4v@&z'V@=U=G@GcC0y#ǂyy#Dy|CQ(,fYrD{g{=D~a^=?DdT-?,EykOɍEAj?>Oc s1cwh9~4`_!:U-XaъfyqDu Ȑ$?Á/ُs]NE,):<0 C:T3C'ˠ{v}~,nF!>>poU}1Oj=܆ͱtW#Fg%eUrLOפ~r +ҟ'og{d}i ~߻^EhtuDJ?A< pTLm):J[V,n,8I0 ډ %':ci`u㿍:C4Ǹ ?yb%#9oV3^9J4p.B]{&B2A'r&&6=X0/M1fd@>LTE|ɇEi1xAP"cF؞P1։PQ^hף$@<\`\;UEc;/v>/=)@Deyم.h="|;VNCv=" h ʃ#\` *) 'M$P* RNXCd˪*a0Ȫ(%neqG'=<'q}^4"ҁɚވWd:WOcpwzS`z7<ð^]Iۺuzxtwv=Jſܹ?ICsaP`E5+WsV F, ?Z7vTQP9Z~ G'c:Ϲ\7>;/ ~88bOP(~yv{?AZrQ}OT{|q8a?8jS `4~6Ev04< O<.ѥ'='&CŅΓal_O#< ~Dz(d_ztt48G|~b%ЂPEMt(R*`7fwG}KڇG YQLbpt 4^XR>Z'A!Z/O;Q1$Hrs }h5R l(6urg1cz4"*q;S@xAk'~*(C zyl)|Qyw m?QO=xU?TrP;E]_ѣQ/Q4*WF1}L֑F;(G"ՇV) ˲j%C˶hoaP k}Z2sr`bG`qË w!IC'ė,:$5꟝uL|>kcӪư5t*+IrE*b<?zq`$PI_?38Oݟj?lW?!D!?Ip-i?~OGW$*@25PblaUzOq168e;G$2䵏:NΌ & K%o*?θncvY wO*Uiu^L"T;y<,[jk~|J" $xnm+TUTw3 t_<+;p =uتmXX6I^YH<4bѪlVt0w78ȉ!kBR72> F퀲v`E"hRU◙|huB`j0ޮ}ttՠ;uw`EPfF _/1I)p( g)dB$g>&_~"^DJj6wµ}}}' & g!A C(zcn琫xC gN}&V?OG Nz6|sqle?F[g}&jdL <+hm>d O[ nT18R̳".AQ3yJRTFQ-R !˅ >GӟD?߻O1ڭ+q]vZ0$@DEQ}>#TkS>Od?mVAUP}>Ggk=B]5bN& 5(L}9*!`y 0H<3/?1{HeِdxU Hzުӏ`'c" n!sAVGDP P =!9<``eϔO>;n>w<tQ3{={9^ =㛰mT;K_5Q+{A4sC٩/-)q~.Y8N"kۢ? w9֩6!y> x&5) ?h05PdO G!$uo|p| Y+|l|É `I\V"YO'u~UUUWS U$bN~ߕ.֭@@v{ve=u/ӷ"Oϱ ~}(@lA f@wlp{p~rzGsb+9H t|<~T#"ǩ攃Gά=>@=@臣Wkx_w_/Hz*³=#t>'&Xס!P|OsxdM_?;:yqOGz<.s?N{2O%lA~r3WD  @7%җQ 쑠 9+!~ItZA"slDN! ɱ60߈$  T*NwQ=A=}f8痸RvTZz&av[Zx;{ùiWq!t&t jEBq)11iM , *hI<!-e\{ÿc7;T6tO=ك;>_p0R  ۩?T}bx$4n$/̓S *)d\u 80t]@Ц|S0 QD2\;Oa'q=R$wt82z?O} ,.~'ߧ9 S瞺'SDڦ@HP &VN8ppͯכ&eTR3Lȁ 'Ο:kxBIv#pdRW@zgT+.- 8z`'%?$@QUϫ7\se.,}f^ ܼ'/lB|G 8'$==(* p| vvY v8M@ 3GRRV|yO}zpvf# :%F_t*6|o4+Ya9I8v!3wA|X5xBz):t_"@|HݯEFTTRߗx|?O'`p}[ۅJq/4_R䦌==N7zsW'*ع }{t~ZU{soZKaIt1r ̉yLiC0-')vUg(?Y\Mjxk1RaGX,SקTE f5KWA=O7 9\m:nR҂a=JVxȗJ+3AžvEmQm*+5U?I$iH@Ѭ U_'i: 5>9{ CJ#bD;~YgGzeTE[UHA>DH sK :ZIxr >2Eww1{z:鳈M$bQI䅯}S1 I^Ʉgp];uS۟ξz_N8[wHU5t04$mI'L@$mu`!8?/lkiE0,|LW}"hD|[/MBᾶ I$F)u@ET̝OdrhPT9~vœbR0I 6QPMμI~i~j*A` {A,jytAh|U3jul(3Q엯&[bno6 aD 5}\tOZe}s}j"Ə;)]mۃIU*[] ƺ|>'Ga'b>kh`(c\g@'rq>3KFDZjWB %,R/MV_G=P3+>'zJ`E6c>#k}:Xꜧ Sy]ͣc!m|x2Kݮ+m磦FJ\u#0NjQE!,$f"dcmU>Isѳ+v9PkyYY.;P16N;P4d5KRΣNف<@RE~!ރ P*jj{=U^5Y2^=h珛&O8m`k-bHpO^[\,npTIDi.t=+EIM*-iWW**cy ^S-eJutT9*@Ox$PZ*Lf[ϻW{L,U -+9@Vi-w!L`]`\]v7 k8K*mǨVzuz-n?MhZ<2AȌT듩vk!4VߡOFH &^}^o$SH4PwD|3:X*;tdMlHMA?<=B8kc}Q9 /ʁRg(I:pp-~5˘< M.b$7 ޢ)3ZǬgOwyƤ|c+[޻ Rs֎8R]+tR{"(1n#Ի=zkC[ </ XEn]GwV٠%Y Ҫ.[v>8HX}+ob {9sޯF.qO79.hdK+[὜[V!v{k\yeVzSϝm9 yٻOTjۂ'Usf\a;D,iLEz I9oAc lGV(r*aUf8eшhT:$J#c(!&kd|~XRP:?9QdNKҥ3Ŷ#(jrd3]zϿͷ%$kTnFq ,:kZ=Jv]'~2vx"#ȂD888lVVke t:CuLp|qMz䥅>譏2wAGJ 0/s}Cc38ҸiVVkA5BЇFG7.)"6X3). P4֊WX@qâ[.Q TSAXӦU\)ڜ͙GV;hEã`Av`g)*zeṱkeۃik E'WTHJL&f)(aч@PDm$X#hĤxP pS畦&Rrz(CuGHKsf%^8;?9<$5`YNayT&mz(G`b6k^kpz5HׄυN`74Cc;^'HJ7tנ\tzYF6ƨ ݃}f"%oqJ)~ Bn7Sh^*hzW  ߬W{΍=ުXڲVC&訁{ ] pl v>NIK=~YzcLB:8ѳ% .og8?]FRs24J)gd+Mv9>qu~874n> "hiEZJDn'1^t>'z _0x|yN=p%CHgrU{F^hy!iL>A$>_]O^ ݍF(փp‹<,U=Mqd56Y2dz*&05,<O0yNca 5=X ܌a5ov0A܍G͇·SI}a8f#\v՚$!CAswhp4[j-Tuid V̬,:L!t]nڊz>^6 C7w0FE6'ȇ{Md6Дjrp,Q; O:QD/zz<߂{$O!;Λ*\_kC 1N"#HIW'~^D tQ[lA o|zdNhbYbkFxz0g}DT:8g *KY+ R*&Din.F>')H(X7) Гj~F^At:*wŖrI0/J[MHia]#sOl1\ӊGcMtw4Y#:b +#w룖fDբʭUU&mf@|)(_T2X?~l_bT~$:OpQR1|=<@yt|{B.+>^jt > w8p$/BByCM HhHͩV3d$|@eKi?ZhwEજK Rw_(! (@7M:m$DpNr*ښii `@ 3,>p7ۦ*^ *%t9s;xP|#V'9ƁzlٙLfR ]b)cH h4z$QðOgylU5C y'n'N7\]c%;(S,FusOˮI*b4Zn͵C_DHl=g|Q9(FX~ۿE0m*kauRӤd$:JZK#"|K&x٠0y.Rz!*  0[ĸT7UIсYay \i-t}֎MNPΰ# F[p]D`z'Jr6/rr{cnNDҡsb3H,TMO#p" gx}ߛAǏnSʞWsޏyaf1 /c s誛 (Yu()«:ύ,$ס󓓶ZpFjrkB l}q;/&gnnm+"+u;@E!=mJx ӓt|Gdφ1M@SCBS֖LrcI0鐧jOMs;/$CQҷPꀡcm" !C}0؞L=N D]4d)<%8 CdF2t!^'QL|@DX,#PT4&hx8ljV#oNu2u >i<Ԛ3FjIԫ=LBD,p, t괄!*}ٌi{O+Ĵ%4iBpXtƎ8 q9&+"4Ƈ'gf"i@Iʢj˾ ChhTkw<\gKBcvՑ^ɥWK *@a)ĜȈm `:" ?W/`i)w۷nv;/V^cb>*m e厱ck.:"4LJ~o}peE>|>R}=a#%M_wE1W[ ԭuXtYwN#w1M,0Z ?R*@F#!(Ğ%g~꼵LpV511DOC2Yao BրIw}Ȉo]\nS"p"xBsjߠf.Ή |}(.vGĕ7 Y2GP L!by @q4x{eW`r3 \DtCB`8otZQ]}ѽW,NxEuv;OSJsl4qkWtRPۮއûY18MjS+8W;;hnxr{$"kW珝~/G*#"5ȼP <_4EP Ӈ~p(꒟D}3~0BB :lhPI*Z5,-b8n Q_djJUM662KmRͤsw|z#TilQ0₝`*fAhO"VƷs b`(9s$ !!$O> Kٮe0˷0eLPlRf3RFMM>,_w'vޯRdhɒ1%rDE2*?q/z vWdEU S ޹bܟUǍQOvƪ"F?P] I$lʠNuRC2naFkg% (<'|ܪ"=)ae%ZP>P @<}jJ[O*,qJ|\L.;Lp97ep~c QGj>_f=ɞBvgx/C7n02%ƍo .x0dHQR( Px?}-t$׿ Ĕ)njy hě7ֳO5NEU%Vа%E8;N4`Ҍ@4>HxmNMOwY#}1Z$Irؖ"j ZK(cL%)D]lp;?J^Z@RH1,L31*zШ:"C3lYY jmh6"mjDmcE&erοW;Oi<BC `,{Iwt~PK&C8wh9D*E*E -S5V*ѵ&Juh6MtL ҅, 6sy0oaۏ2'IBO,>0-H(܀ygAQ- u'PwO s! !߁~_^qFGCB}8igJ3Vr0/~=5 ^l$?4Xk]D+]ˊ%'7s"'BuyjBd HYB,϶DdC"պl &(ByEr aG{~RR/pO#PP#§ . @/l vsh< g*@6(_oĮ "-Tr-Wr+ p#R`Prz)|FwW~{(YlߙM67a82L@1Đ(َFKJh̍,j),@9 Re\z@}|l//T~aX}5[WRwGc3i,yњ]ݳY:>Gxd;4^#Ks)B^$B7`NDfDkv iVѿIȫڂo2[.4w]r6i۩Mb99._^*O&Q6΢E5%Ԫu(-\G`JJXaE/ $oxM3>~@/`>H#ϟhРr%~oҬ'o=%W0)iLhq}]7kJmvqF:f=2"*NBKuږ-ڌ_Ѵs%B{TbKY[ PEm6p ajE8e'SU*d!Wq\҈Ȩ~{^>dpD؁[x`t䫼Ylm HR\"<%tJU9( ΍TW'l+&!D,g;h3SYQ2Gκ5rbi+uYJJ&$0:(iw^Q}^9#'9Gpֲ "b2AyݳG{ab (ɇܕTBG:=n9Paz8>70EX`n!0Py6:_t4#nTƕ+f3kxKGCiNబzxr)TYx8(];&C4d$A "#2{P`;y@mYt:Tz}^5" H~=^DDdM)-*[h_|je%1TnQt [Nk:hQrp&p\Vڂ3̎)${E^2(X!vndTW f`SlHAV\q m w[d<-}c~cs"A~$(&~7' 5mEyrD0XT0Bb ߧ_3g\"MWWfp*{moKtUA{1T\(TBie$?3 nw|<#噻)lCe~!(*d&hyp4@ KO?F!5ϗuGeh:%|%8imR SdIY bT߉d0ϮCASՂQS&R* ?{!Prj2~+[RzܚŠb2!8Lxhts'P8U>? OXC푓 J ,'9-z:݃t戁`"e>ĭMucJoRȪU6k?{WlJdhHW/0jmnocnD`t ZU=_.gDp4J,^e $@`:b'ˤ] tmITW9f`e)P&x"\@D?~׳ }Iul&@C@TNfRsd{ʼn4OރH2#;bkNJ!":DQ+1:!m(wp=l4 C]\,M\Yb!G`&PI㴡 w dҴ:iR%PJ CUm;Og|2C?x5 qbF*m6m1bB|`9;"sX$=N<9 Z]AJ@#.*MqIDJ­qac?iirVҏRXr68,GM?e8Yc_h}cM:Ϋau~0f 3>o=={5.†!X9x7!y FS:a \^Ạ8͌Z{!_ybeAڶ?k e!bV&!ߜDPCwy$d(!sD`203 4~}'myb*Uj?!{se-Z( +AYc_c H6d FʆB HĔ0&_Bف?!`  !p,|EAQѤG*TꙉXoK32:w׋JznԩQhmcKj*#"DljY͐>sG<袋J[J~QE4(qNJ j,PLUwGi""M#! PeZ4ˊvu~CI8CAᗿP TgJAVTrb]?7JQD6- 1k&RQLghV$ >~Lm%Cma> ϽCR` R'}L) I;s嗍"#mTpnB`| 5MSrf3!WVMZ]2+"3; V,.<ޝ]kS0w|1=:漎W0Ig|VUzִfA[ƭc l:z7ƙv"_t̿3@S1N`C665[##esK\htۻEJ)uS:rbO={KT&Ťě]YkD~IbADsξ6UQgQ:!:E-RX o}yw/۽mIQfGL%K *<Xآ4BәP!6&q!=m<? @'eKv1߰eF_M"d4G3ZE)VZu, b`MA`s,Zc2s.Xk&4Q%2Xs;Ceؠ&{mU]&YVfځe!K,%Ee# -+B5I.hڮ+*Zj1jiE6j@H\UZ6L h5- Sd@K?6}<>=Y =sFfobd)Ri\8Cdmdbچ &-/dUC# 񊿋2;^,<1TXx5.A HK2 +M)?5A%@~?I1~6֛~BO- T %be)d7f3N3eme(Hgqt&aePyR:Tr_kvo,}39dqmjLD_GMO U*vhLu4ҤEʼn0! tE^y}~'݅h,г{ 'Eq)HCbBÛY{( kO*wrӛ=V\d`{qq ¤CmP;Z¥TX(XVUiyRO]cnrl\FK"awGkl5k+H5c>҅TBr[+@.H ܡ|c\n'%L1M7{$&DXNL4xhPJ??,Br+$x=G &Ât| TR~35FhVAi/$saBM&;Jne58AlH[粻 [ Wn1NФ;#3)Փm34u62CN$z͹ wO䊲b 9SFOOͩLYIDFJ B@GC'~+V{xtCAsމܨrq҃k?i&U~8Rh́ 7(pxAΠ" Ң/ZэݠJD#*|fA1Lez_J~}^\SGV9ieBXf߿ln^v'A0S?coեʾj Ui># V&L!$4O??g/g?sn"$s2P8П̴RSrG7D'!AjjXQTmX*ňKm( @RP%  " ҍ I!8P(!7jxHl~M:M;p!G Tr5,muݯqIB[ЋPY%62oq)T6:z٠ 0ӐbYVD[\Q`Dt{"X <"IJY"ڪ.UAI'X T@Iz#%L S瞽<=]FONg(8閅+b;@>OwgA4'J'Oc'[!EKI`>`4"5R07.o184p tXL+ P;3K!Hߎ2p%b";Ί$8IEI s%Da]e * *,fv8a v~UI8&xVK-T/qXAB|d C-;FWL (ch%Eh hI 7=Ib/ J .)~0H+ 4snῇg[XēM=Һ* (X7r6,S2*.kizzu1U h'S ;UBCJ# gm CZWr5_GE t# 0|)9zk0,Bva) (t|q#nIC״/ȸ`P0uV*^L)%";nRͰ'dmEڶmY2R& E<'LEbr˵1"2 lN0ExDLf5CwߍԢ >62L׾u:+ObTO^-`]cȊڮnj 7nT\HBR;Us ƶ) CexV)y:(39Tnַy)[E$UФ^IAVzիQń]B"w|nvVX4XA 4XVkOt':H*$ѡ eTN{$Z 3j6CUPQA#:ҙU552UZX_Y~ڏW}VdAcʔ^?$=ִF܀りHMMH*/^hS)s_V$k!lSх^n0I@Re@QN;Rs8hʦ8b K`̳xZ\-}k\(2KeeҹGVZRӱ+tkChMm˳ҙ3WL=oa+DӨNԽyB2VUyƆfYR뛜 OM 2[3-RK6fN*bGMִ,W]b7+U֤QJ8taaPJnrSA4! (s~\_9˖E^ҌEݘrR[`ڻ`-¯g59 0S棡Bp( ]zdsHdL@$ 䗇(dtԂ.t>fkURHݣJ1ZS4p mW Y139}Y(ĹT|Н_U&aδ#K%~߶wq"$cck}[N>+8&yaَکjRbٱᒝuTe^y }4J 7?yOkuCI%dFP:U%4C_ ̉ߍ`PDBPƉ <6^9c@4DsHVUC4EQ ) IL5 E޼!q2b`]N΄/{CrYfIɵ=;ѓThE޿"{{@E)N)O,DiG^4F\OY>ƅa=b̞U97}NêXW{Q~۵qP;UV׻E_:4b#W.ZY`dE҅'Ps-r-&1ˤ g, fm[rEOL/JUb@[-f]wT{{dom63›CIuwxq$ތqއGjpHMlRҊqKhfpn>ʼ) =krmyR.k}f ά%]C4HJ$YmO4+XG#owl,HUcp>Z6Ő;F~N(F1x95 Z MK쮉LD E .T^x,Qz%ӍrroFmesHlv6%8J6X!2RTME]툜҈J1 +k[f9b9kD6~)35+QKm[5&\K{Yq\h̔DQTw$9 bqhNM)ex8C+7 Yڲ"o|7/9Òv'*3%]&S7}wf46,2"wL` 4P7=)SP#KJ v1 ֖Б&w̙CKL%hYO0|)~;4&HӲL.(`$ pA`0optB)2&bdpx<ѤQsMT+c9aѕ7A0͚'tNO~ OQ M z3| ,d;pB*Mji'EA:$uՈ4yدPlu[J(:- ,K}#jjgt$VB/}Aӓ?Ʉy/amf4 "wL&l M-a!Phgo E&T'$beo506awwPURG㶰 *({ )`TV% -Qg kKKOYl) ~>vPDz@@:BI. C%k'39w%:aD%uݻ%ǕUN##0TK,`Sc`BJ L( 2fӌ$a0 eUN^ϩ!:ߵxSg{`}]!B!?j)}֋g>tl~5iDӎj6T“m֏Z!wψf$jEږm--FFO <`shP>Y.>MeFhыʹS_{ox<'~D>4g?5a: H EzS2MqʄXVI:YBPz*"xwDJϙڵt t&CaszFV;N=t) Je%HT(ě_ i3%ЁwLtO@l }ny8a?6W >,u}N'-4~t/گy``>}~E2P=BXMVѨ+mo7M[:*qpYe7'HC$?ooдD쮽n,O(N;O?¿a'!$P&@wBGSJ3Pmiu X@vMWut=CN98?7# R΃M@k >0] )Ƀsx}NĉHȈcU{tyuN'{t$0>KYKm2Md痕 M-y&ᩢ Izhp0|u]453żu ,N苠Z虮toaBͩhͤM3hm+RZMFlj Z@8؛ Dh3=̓#pFhJ1KU9kTϗ(_OVf T4]eԶ*Yit$R`8~jֶ!}v/<4bo7^.:5֯T }x6@[MXa޸.ܻܺWr&Aw=.0sk"%m/ͳSbR2 `QHEiY1 [7Gm "KiXX6@ej3`>#3!ko*a!F+?CGs񙅴lUjfm>~=OG`IsCb?XxPDgJy=!E9,H}gja<֓%3kB휫SJT杮Q^6( K"6Ŗd6 0FV md\!aE,(֍?ar0gmaQ1+)A\JM'3ܰ9ƻ5LBE\FAn71ye8‰l =zY:{bVn[2Ev Õ}02"Euvb<3QNѕV֣j8̀A ^)=/x{G0g@ !4 `Qn)AOU=@DȦhIc~r`B,Hs鶹(quQUZvX:TAX<Tn Rc]gmTmPXM@lqnR<[|%UUDV+&`9"YN8MA@h R#tpHi|,{sHW2}GVr/ q}w\*gj1$jT mBm7Q`IL"*P Ka2IV*2`tExݠ 5 %˔IB\]*VԜ 6C ;j;6V?ng~qfjP* bf^̔{|#hVEX;{$@ lSK(R&M0~ifTuN\ᡔ AK1uI3j֒=_ Y`-剗zEHH(t쁃Zv,2I UQ$pqIT<\.#BߴeB 6+F jmID ~: (iuJ q"KW==jxvy}PJ`Wv|x{'L~Ϗ3>wySEė\BY-pͰ袤8֢k &5#BQJ9 ^2jhE֡tpL k,)$ɀ1M+&[N'i$H\Ԡ}oLy*tA`*($Q(J*Ե̮;4qB,2[)AQȴx"  橌5DeTYezIݖ6ѓ `kVVS0mHQUpN1cL"dIrĦqElͭp J.BQAW xB):vlS&(H –с{ݣ~\{=Tԛu]FJŦ@b+Ͽ4j[ X)Y$5L$+LY#'&eR+UY3hR"Y3+0(I@1lgW ny]F6~u|#Ke|Z+\N8|*>!_GBd'"گ+DDUA\)Sp]#IO.}Ur~O| &y>MO]&i7`lCg> n19彶nYka-цl8V#ċ$܁C,up1cTRfm9)wwj:gi5Ƈhᛗnh1%eibn'%YA$˛דZ/;*c4[$׿R@z nlșYNj2 TT{'~#WXN+ޭ߾;WK.!sZF=.q-#|f.{dR.]fG$o}4ސ 0:p1PҌ54^akg`T,b0lug\I "d$ݛg\ 5I:&˖Cwi2Wt9ٰC}s=|HdpVL59iE/ {0Bjՙsrl֎8 9⮶Ϸ7a8Kvj[^ZdkZ6}*(/@&a.%WڷiJL텉/ zo^g3Ny]^*~>gG./ +Kɲ\J@4ȮΔ3 ʣn , 0NXMhNnמFUA!u91|+N2/K9ʨ&ZK6CP("nڢzF|p @hbwu0ۇuq!KmEBQ$89p:<0zG׽{ֽ|PxIBO)q !ASxf%"uhHLmM䵏*O>u^:fY1<jbW%9~"0kф=\&3||SϜ Cd8. 'rzέkH`yXZt D=;CRB{5OiJb-4 %J6>nrQj*u_ yڳOi=tKlD,Q&P3R7?^e9݌)N-ېos%\ zNQL([`=-\~h,!8 P5<'JXPF`b|j(Z^/U]JYHBg:lJmC"5 Y'gv>ڶ \ЙhpT,`Q@#:꫔Sx6n„<=Pg- "O$]H<|_ w4NBQGE;)bIA@ȄkNBS7~ViPwcOLۧRCC20IOò(Jp g'$9zxHҕ(JXmdԼ@Ժ ɥ ֍9WGpx#<%c̶ FзG'p2D;%%ӓ:^O\# Ը"&Ez` xùDuyXDʽSG|@?`sCC| x#j ^'PfGs'}I=l/0Ҝ#)vBw8aޝ h@%`N/@DȄFld#{gcZW.k 'Vnp6;gS O#πСH4'Q%>]]baeXZPR ALdae)$P󃍒s`- ,ȹȦQ2đ%,(!!Q@RT#JŔT> whiQd .(ޱ!eq @ C` D!<'X"SIH?r)̨I<{(xH tTjZNǥbp$.:@!n< :,."h / m֛gqNpylZ6r Sd.aC'[H }Jz]LR,`գnWH!×6ڼeDZmjLLQe;[gW83pNyuRy3a6/ 7C5([!v\}5m _laϦi_-|\ *zЖ "NzDr*s' r.V1Z3fuf =k'/X ܶ]LBZᬵبG1Ҳ5H SG2ʒ eQb4r @\s5]mz9!>>3Z (CJk8wV'yqK89Z׽gfsx䴰|*h,ffQm9@>TiXۥ~Nv.s^U6i 3;*UQ_ELCDUrx 5:W󹺜)QRKVv)(/ͭfҩeQ\3L8WmoFr~ _-v,<'MP3Q`]eձ͖gyYq-Ф}߷cve6öQמd n˜^2,C)zsNɬi\V4,sa.8uOo5p0ڠ1 t6ᇨpC62R)!%% n8]Da4D,tjn:QVP\K."ZbAtxaƈ{&Nu5YZn69s]{Wυ ZՃ VɀW%/+V$T٘PrSY\C^t&6YZ4e![20ͬ$UZlTݥ[cE¼"{{;Mg75R(bH{gplk BGze}!f]& va7:=9]fJ!$N s$6[3"Zږln-KLi^Q$6RhC˭MZP)&|Jf~9cRS1iIPT)9>uO3vGKZ7AS 뒩ֱͿ˽b߁Ư_^ć TɡM' ?!A(7`>*&$p48S5P=CA* Pñ ]5vFL1a*{See9a 'h]஋ B9H?p}Ϯ ~C*k |(HzPcڝIxW<[ҋEwnh E%vj-"R6#HJji4hb ==~9>{ t l:~Q"e@&0T)$oW6nw^iSJMk%Zu2XXUj!hA?$+a8KAPk@J`')Q&fDi0O וmK# ^`IDY GX‰DaHF"Hf^$DXX: 4C00`JVu(ʩ%'9ɹӜ^Hay m{”Hx?P, CQ.LS" $ : oFqYHaCfb ZPVI"-,{8*OXoҷfpU*B=ݤ`mV]1=-tTH>٩h\ǯ9V(ۛÛV feTPDD|n)^m-i_lp02)6qkM*E+ Eh ]dRjL%4& 9BId*cɊ!aa8 0S1%=OuSHjpߛx6{~סݐY;=m&%)Pt۝*~8U'+lX4 7l*?vhb|06D)l%Ed>qND;pQ`%ꀼTc =Gf=4b=tW&C}77b}^z&['ԶCI y?㚙Yg!چs{FQJ862Nixh֓-SGC)It.9Taaw0*I~V@8` t+1PTcǔjuM܋L3rd25#n)r8q%uE?e[&@O;56hkbE(s*Jc >#:8107dds3a'N-|;_3U2O:.(7(:sb XHsY3s30 bC#0[2Pmۂ5߉wROd(EOai Uf@DAP\'̺ȜϙtG̹TC@zhE*j?3_`i'}tV[f6/6L- LZ,&5ZJhQbJ#S*Vh.A*>>מj`i&Uhf 5a٤OO~c]/9z\} ) EC"+\5}/iGg} eq`ikU( ltp 8z2 XbmfݒVG ˴ ^a,=glWjv<;}ĸ1)r4oY\(f3<-Z%V% p -Se-6$Tlpgk!vѧ#ԶkhedvECʶҊah{~3-ʾyq(מqZfH9yf@Qy201(($ZTV".q=_1#2;9{8Zws0]cNY4fC͑3yRy %NBH;(H{qhxMܰn]( (TJ:<%\@de"d͡ӡ>RRq*xnZYde S ^f^ ׿97\]"is4h^J!K";3r `z0< ΘiëG~v(0FP輆8}R9= '@<&$dNk Nk*3bP;ؠ\#J4JCu?./OE@'!## +T2PXκf@CT4aﳢDS< baTB̦?H Ä J`> ?H 6AN'a$J*N.n%ŋ؍poO3Gnk[Rb嗋b2r~#V Kd%q&0TuDe z)192Z T99@%!B?(oy |fZPt!e+\ֳp*%W]?gYԭw ~rTohmEIKkf07e%U,%ZN4Y( ,DiG5XXLSx#[4]]+ ʭm**=sjA U* g{ 3gk،)BF2X!U.Cu~]ֺ&U4tJtxγIJg3K,z;g쨡:CC  jIYG,#4lSnk֒ d9A#T 1Cq(((O@>ohi~S0 s%OxoDAy#L@Ӌhũ*hV5ڊj#mh"5Jd#TDHpօ z)8bE;<1hjK&D@D$3iXE"R+ @" !Jʅ ªeyUXE_3N6m?m-i,]~JhҴQ'D$B4UQe^̘&K3ͿZ`( ݰ1)kVvz7j8{mQ({7AH#[~ɤ;A{)Ʀg@tGV]S@XBQ1-vuݲQ͑Yi) [jdek*ktDD1E $MlJ, E6΀zӻ9f?Mvo_}gτ!d5rZ"#!7BdHDEHB )4^B%4pa]0RJdR! 0L15&0E1,qI$EQ\`*U"K#1eK0 zI.A?&2(y"AIbB<]';'*mGknUdó.!CLC(.!(rnb?WALf w5a[&eoLOۺf>Xs"UQ PR"SL1@҉B}~eO D2S2%mSh+ E}VJ[r$,bb{zp~P51* 8d* ˩A,>n MC"O!-0|NH?MCa :}QH اd T=C9/)&*hd@f6Ӗ1">G\+uICbL>@çuGev}gLP]ByR>=-*8fp!yP $h@*GYbvn#T@ vӵnꪛ`FH3x%C1Dtn١ёq~Ԓ)/ީ~K3F1~xs :"(pi6HTq7פ&jDllDC cь3QTi m[[D:[^RONyR}!d2B{mWâٰ@1QILTZ&5{kFF%B4×}]hIi9k va;蝒+;nnb1ni7|Y*ŌOvYQ֞M@!fVW+FRJ0+ dcn"̴RW5ePIW[WZXp,Y "JW~wB C s6""(&I1ַ,fڻ:^c-vrg/06Ch:Ӛ΂C}S.AXk>z<`e&0~{G!KAӡFNy֤H1"d  COsL+!pnX-k3::i~Uԋٱ %s250(Qۚn|LJU۫IKj?^S)~zQV_U}.kh?e8M#J,ĄKe@J%N3>;hcC{]>K߮%Eh|ۃmbݦ*UNH^G@;x|W>&y٪[/(;3WNc>\\Jg\g}'Nh?\fjxcSb r<%r);&C @9B:d/=W(SlYޞ.֏YRZlntHm-͔$g|QFB*JLL:-fJy,Ce @ݕ%7 9p:8K_qHkknG!vI>;s.2X*v UIRA"c˰Dف8[:Ē \+LstO}>߆ᡲ%F((ݡѴʂϐdpDY.;O=<}>Kt¾Gf5c䷫֩I) h_7Wa3HӤa҇v W4$1 ")'oニ.鰆5mrcrnbD-\ەd }ۣDmX ϧ?.M Bn sq@ i>Mo59xg~v|ZV*ץ%F@a?pswMaq٧rC+nclgt9KظȞPXw4.?hI=Ux)'ܼkSv *t~=XMxSՓ@5VoS9cUe:WZ#7pU-zczk(oB QH;PuT "<2 k,"}팣K@g+F/o}dϏ Oq۔I=g5 , UBUZxuE"Ė9p";RM:Tm$p,">H#Fd C]vrDDr=4 ӦfV΍݁%Fިo;[鈻 !ATw*F\&:2{*;oh;;y,s\;~ &HSMZ8A" D#rPܓ3}Bo۔^RipWO^mQ'<O~E1zJBK b&6Ɔ|Ash Պ /w22aDzsoXIg!I10 ZcMK/_Bn& ǔ5p:Mc0wfH|fHk): 7ގIU4)iN$AEaBs\]yCG@vEhtiܥ;eS MM{ܦᵡ!ő@'c `uC]CEDbLutOAѤ}Jb\tIU`2*$NrHS2*T{UX ҆SoD$'v]I< dڧaHr]@Ô<)xݭbKAVH"TAB3 \WXa ϭ't\f)dL \\ad4H:ED.Z)fe)qۮĆOvH$G iKwUOvt ﭘ0n+*")% Q%Ն58 ̱a@X'- j %S:(m f5j6gO@2ɺR-MU$}y!PQL[D "(-%",C(P:xs9AJ"TCD D@i<2 S:sѼ{=`9sad"= &Ly&́ͼx"\¥Ap(дMno:uԙd6 (hܪ6[`XϣH Y8I5:fQkZXW^p<{5ν|SҀ?; קbE=:{FI4B5-"|Z.#aB \6֏d@ۊ@l6g'q: ϡ$ ԇ:x~aMq{6xoxV*`~1:X4s$L2~GuO:'?QXS?(CAF_>hh 9.(}]WGQ] ~h>'GyT_d)dad]FCɱ|Oӌ8h Ttj.MH fbC$ @4`)96/&ZV03;%;t:32h! @GP()B!)%MQ#P()@IREӮy#e5 Df6VUUc2*^qta&aMP(!V\ɧVƋ6e`0 ˾/fXJNeƧY3R }$z!`raj2u;z!kh\uA`|ijBA8sd> 娞; ;r wr+,meMRۦ\*TZ-u<ܚeXş%Cwl3&EaNval7" jp,`h]"c){/@:F!6BFBSBak//D !ɡ\EޫrJtUSA=Q;Tۚ: N/Έ:肈)&c4fBMQ))RdJ&JB@x`änN$>X<0yqA {a?ył=Ꟗ̖HM )Q;mIRIMĤcXKha~](HyvAÉ 8ѐѼL=)B\2YoHqrb:mt$ $ A3=._߸3s!iǃ%&rBvɂ`,Q[m]~B:qNQt q`dm ^Bu!'>$4$W `#y&aL<4q6F'rG|%T>~q>F8kl]I6xhp|oZ~b>MA5{r'BI+8>tW?#O;H<5^-zA*ĈʠR,I,H)B HR~rzyhG}D)m\A"|z|ONAzy=WVX$_"D`?Mb톗, 3 * s(mev*i͚Ni/h"?IDq12H8J өȂP##P?/%o/32H(Y 1uyXQ(#4J;ܛї䥍^XȊ>j ExlE0^F2#  f3Ek2t1Jj+B1u jѻ6*tR X;@A`!w|$S8} CO1uI;0O[*j=tH!H>$ՙڒfʰgɜa/sق@-*E`3)H2PguDFMI4gpHB+{!{M1]ҲM<\iHGZɘkb L&+ ݹ˔6St3.Q bB-{pڊ-M.v벑b XK!Ѥ^P8Z`|ӄ6`)<'{I b3\U;hWmn|`lWlm&]09q&E]oi&0 94spM2rXS6 uS1a < lPYŪ6NOWZ9rtQ,FRaV~Atc'MW(l4;\uϦ' :q?18f ]5˩\MM)d, CFTD!a0d$陚`§ l=ӹ=)dts51@brXдlp <6-*N&mM81g3Ucu﷥ Z{1N2HMˇl`ϧTe4f-株yfн7$ z طju![|ܡAR"I\-͚4S`,SEP#ҵTTmFŨJQj5"Ԛp*3 6nh5 mm&1JM6KEКb5ƶ6,T-4RTJd0N7O4]5ӈڨfaKv=#OwmRCo\N;A F$ UK RjaC" D7GU\URgyT=/w!B>B--TD9빹9;$QRKh SHPE]fs+,3вalh`rcJb rT^/Y4'{^ wz{<()z.RHa h;f"Aƴ"bIdJ4XEe(CH > l[:՘|9;PNdpw&)Kڨ`$V+w|2BH7 (x gq|4$h?hJ2 e@J1È8$` T< *֤uVaeK$3yo埰o{?bǁѽBJj/b\ϧj`[Gb3|'֍%j fPX~n0*0c$@!4oI};hmp Mt$f4P rM)7&GΙE>>(yg$‡}{-!rJg P /WA`asLs5ik!YTJgqٵ)bE`bB@@Х/>4ke:?d0X'[87\<3R%>Ke7>cù:l;U%;N3[G4qGtP҉K3]"I$)L4vh'URR6AvG1m9U/-s]!uL"FudkLʏE}aϷmqGB0W0BY*7Lѽ g'/f{rܱ/r\m#͠X!ZWcϻ-!PVZr QC=YTb/R #Nsw" vsof5|gyipf2T/k[X~w]p yBJ.b[FY5U*Vs C{ Pώsn qBUf T-# &Te YLS-Su eN& $ ['ja]׿}{wW+h*І= T kɢ~MI7(s9kjYfUiԤr,xT(ow96&RP%#@z}Aj:'e<^^u^zi(*]Z1R jT<{8[8oBZ̺\oW m(WVuZ@ҧg\/\+׷.99VLCEȜ7cOs}KUb-41Px ĢF+xxx}!"p]?7i/k z0}lon41-SLτe7YE;KS}N4Og_HC?[(<_9HcvKZ|}4I ((0KvEDH\"[,X7*m?z~k@Ϡ,[_ùjNJj(p_'Qrp-{\ ֛+tsu`m$OD,+2BKSNA9 ^L۱bN%>Iim?b?}׳W)ч=pC5QwZϿQOū̐v$I3sBDޣI@  /׀4H PRdaH( VBVMbj%*W$iB DZMH&J!!B +6i(-jVƺl©:ͮV;rj"tk5-PmQ6[mʠ%ErR$P jձrZ65s-ѹdEۛnZ5s\5mcTض6K\k)\\T"PcDP?b:`E_ f _#@xazI>|BZpy<[Aޘ<goo|-RѬ` lo>BH1`' ϟzLT F08D "301tbÈF! [% n6=ݰ}g#RFwOS*B|tF9`@~ s@{8Q>D%4F$ eh|uB,upJL D#BJ;sTnٵnm%IMFMDZ6PXL EJT04l\(UOy2Y WXvUn"uXpadőTF).$9;]D1`?^(CBm${*0`~HA`XOHCـ?)@iR`P CTu<:t2"8(D @!Б?qo%B-2Nfj)S8u値7V(D a?E<}'vM`1fN{v2ڼUՌw !@Pm058AP"d?*)RD?$+acv ~hڝNj* {1"ĶI^HPyB?$2$(\̡rC$Hn&յqeb*dkɁ5kV a?cq}+s.(:ՑYiykhҼrť$'>Y  L@ԮIDE8b H} ^=yQTJ λ16MﱪpmuF H Eu"`"Gm ڒ ]jنn#W{B#oWItmƁ,$LD#2!"^YŌ ,5Z!2RowM|1=|9l(IU Mv kz39I|uxy<^a88&',ndUjsbeW~زq˦% Z5M!aVo)8g[syèj bb8@D$)V(}^ |cLvhާ9oIy6a_N5vAy{ѨpڽUyZӭazf 3ZJd3s{oKx]* ֑Ck }z!G=rc^xd/^cSDX^/}Kw!$ $gS7 u 'ک'ogSFqyxQ~c E]pPU>V@ wt9җiFvhΔ155Azl\1T9 A:9NiETT6ʸ.ԩ2o:jԚT‹הgJsC^qCNm޳88C*RpO.nf*'(4g5AeEbwqK:kYd3g@U'wTAlnQNM,<6'NpF,<}ѫBjb(i H {S!z<^b4kE0 6#Dؔ84MB,j14j1 zg5kJYYbVKN%D.%`&*AjTnFdсH,0k[)K6k5f Ȃk밣Nl (X0X2,' BLڟn Eakز*1a1:{JcgivSڽ,ĴULvX(2ژ/t#ʛ4j4h.|9LIQP%]ڴJ4mCiRqw^L뱬\XCeahX%41I* ,R`V"-6,:n;e$D( \ *~A( p%}v:xpEC%4-TъIQG~PTUR2}/DK&vNIaӵV i%Ip??L4ٓZ5EJKPѬmOzIHdшZ*汭th쌠1 =?/hђH'')qhfU ϽQ mU ?舨ebq etd`%(UEf-#]YB`8+7^/~MA:?>i qNni,̵%dB!0>DL?_:Խ H?ݰ|4}>Łp0EHySH <'K&FVM!!f+ɒl-kL`Di&i**ۛ)2~ KMe5)YS2&TiMAT`[(6$!1xvֱ?Kcq _Z|q  \j&KNM|)>`DRЭ1%o%O o~a0? 1D,  BP{ܐH~uQ'ÃM_iX/wP6Ct*&0?0h1#Tv yPw.!8N`c'FJ24re+Q3֋7S@|CpG #<`R[8|N !'2 #=oYaP`hxaSdʅ>i{aiꋕr*@ňΥ!lk10ҟ?QAH{|w8)]CSA9j Ae,AX: -Ϩ]eس!S L (bH_US~8r'<Ј\@x|؝<7ѝ>COcj! ?,My?QE7A!( VbGjK7H"t̶J"yz(^Oq҉ 70d[?~ C1l9D7Pn@$}N=hğ} Uc-+gI `1 B`Ha 8BfLbF<* QGPa& Y҂)/>aFeh6?Ӥ b{S N[z$$'d>ӶmܔP%+/[X!@( GEE LSa-JT1mH&ſ[/\qgs֧{E-ͬ9SQKi= em?GN=]Xv8onw8CI 4Q<<SuI˷" R16dr,L%!A%`%B# B%ƛR- C І`| KJ) L@2  Q$D:& $z.ĝdSwF:&\$p1(;(C iNC/y؎??[3-:ed4L8X1f<=>P.ʒ% CD&9-'ϭR-K %>7̪5+fcwu΢EGHP!1'UUi}pES# /Mo|6$Ѻh,OaܘBC׳b1R!riDL5h[{1!KBI@~.GQǺ7{S6ˊbb b0ɱmBJXQke{MI3;ݻRA4}Qiz(mfATZւL]bIY6`ꙛ@x%,8A2۱xvl͋4LD)k+*.50TdwY?glMKL[A%Ly.נ1TmXz񆈢 PKR%5!JQ#+1H["2#N)J3H xև|<,iU1m/eoAWm/}~pvQ?H֋漋>ږь']iQ夣jX.rH!40aR]I,?NJ}u '/鑃)8d%ia*jRgĐgwp˷ju2dښ Dɰ}Y8@S"m@d~1#$r&ɧҫEWxa^Si[ dᎢT" vH1:t |gzxhHP/Oc/3KHa& .H\c#۰6]r' ])p6DOxOKN)ǣI@J|*QH*YXI>tЉ CˈsJ#A$P zX0O@mQC CC#mj[kW?#!(V66@@$V=Jwv5C`<#?2Ke8EgҢ1lʑ!Dk=n ~|!I 1# 3,ibI~~Ͷ673ڂ$H_S/t@|B&?|0TQ=025C$.ACƹ2Vd̳L(52(S),}=R M<%p$ &'m]=5/ry70Οg#ы0f9&Bْx]?gS1ޣwخi]׶r[0fETZR0jl^ɸMڅಌ3V]Ż^^9̛&fVB $ J$a Er0P ><2xtSbWyZ7MQu^6: Qd/o!R?S+_ 2{I瓔Bk˨@ܖriF&5Z##Ϯ6 CcQל{(U]t(h)4iJ"4[-aŗo7 1^q<|gPĒֶIdsdTѵ!|#(؃E@`$Y#hD5B@ ngRGcR4]R|T| _ ,tYd'NZ8V!sA9b&Y~W+coԛ>HO ,\pGPKQEQoָj2ك9ܑ Jfr;_MҹnMU"ƚ0pP` Ԫ*1Bc' H ؤIԼ2zH !H\̅V"%A8`0`Ft a0$`FщѨeU`CwA2oƫ[ـ("UICO3\|)ǩo, _] ~5䞡zR"8|OÂAħX09/E,(DOlL.9l.wGmb޽^$L -v]mL.CG97CA-:4l f\9!Z#uۋ !DKٸCG BP K+O \&Z9ie&RNa{RRHPHxC0- ~&"`4~Sr'A󚟇^dUAlY|)TYm@;i~,>y~nu?)O|07Ɍez`eb*w|<1 H4&c1" ДR>Etx8* wg7ge ނ1{ah3M=VB0?LGcЋdJ4!(]M@P%>QD_&S;'?T샳^ Q>SIY'L&/P7֟oaerۊ>6cIʟcnGY.UkBj :Of&Ƅ+6𷮵,ri%Z"E%-^em˵F% .R7JU\K&>.)4%wue؍">aHUoTjÔ<"ц)iڦz=Ïȼ B`0?K_kggi7RqGk`OKQ{qԨlFK2J1̖,OLmpѐ=)]p eӨݳL}xTm=ԡcI;SCE φ.mSSFgUZC]"h Z79z 'ݣ=$8 G1:QUQuguF 3cկ7ZFCY1˷(P2Em4N G=_etywI'ͅ50Ѹz_PpJ>xr5:8OM0=ujT6gA g/ Nm< |M2 İ86cx:p #BRB<̛2FEUcӎLbFҴ$GD*HЧ\O8 B*2y}Đ@Pª$<>N`Mޒǟފu:TsÏcbE˨b,oz4oxx@ĦYpU:8c\ [6Yx8>Q]?( 'Zy$Uu&QMqשzG"&̸_,TQEpH>«ܥ6=pf gejHn{6D5K@Zn,c`rP Qh>9s9Һmcy"Qʨ*CӢ%@!M'M'hxh s}PMtXх.J {`/aT' a+Q5ckmjW/a뵙S*J jm\IkKAq @Y7}sOQ&)J(R,QLϳT5K uM b9fB`m H|I NŽ= 0`uћH*u'kDRD3Ol)APE/ᥒb5/$;,TB II51%0ENNAbrd<|85|IC bYB.CQ$Uڦʛkꦷ-]"b"HU 'd1`J#"#_qH – A˿ È,)/Gj#G-/fUȒ7S37ء蒲mA!HbOC('t~#6guA_~~4HE)4ӑ"ڵhK/_4hBq+%?] ooh*RVDK(,ibMt6MxӮ! ¨@,&]ЊHhuC^'nSn-IN$n@aFъ*rp8jŁ8/d\Yy5V  8moX*F4/ʝHQu:$;ct>O 0ycd4{= 9򺕕Ⱥ~>_:V. vG/Hvh`fxUAM=ǩ%76 6.ISjݩ;(_x4=Yढ़^f?[N[خ Ήa]ʦ) 11=ӬEZ3e!`g|>f]5C[x qJcY K8E) e:ZkOR'+JϘ}|:ɹb[qɃdBDC#BDm4UHq%6"M.ZQ:K -%L+UO E'UaCמJR /󱌕IqqU[ə{4 E^M6rF|"a5ؠ4(ATiPPJ2\;#~z8$E8tE8xbr)*E /#kYز!'35{/+yjjEW+kU WC2he$3 [bHg.g.]Ư*܊dQXh<$):9f)Jv{AgV)wpCCu'A>{؞(8ܠaaؓIz>ءӛcVN^e}Y½pDb 嶫AhҦ2huFHO*(Yθ7kiڭ郈'v 83(* s!v#yfY6w͕O.6^!{lLDIb[TM~Yw%)lU)xQ/ Nj X5gn[ڭ<DѡfCkP^T 1-qK-IZb)ӮXhjJWYv:aN-9D lRU7V ,=M;yp>Ď1ۿwzzt{>Crl&6`bkئw:e(6v:OBNɣN}p ~Ut Xy'ZCh3o[@w tO'p{`gu aJ"&3$BG704pt?n)t u;Csԣ1aT1)֍iZ, Ldae@4}skAE+C~=d~82}M`4l8j)8wmJN#2_CVᕀ>'9ѧmw^go|∂ IX$u)iVLX(EK^^ĮEԫozul&&"#+ n.Q,e9_e{b.\٘t$6MpW"hvXЛk\Q5~HT+F DOtÏ!JoOu:{2w\~`d2Zafq09-s/\P{zT2v@.@cqnx'^)r FpYpڀXUNIFm%E_ť(W]e@"Ԣf[rKzЭ8CmrpRP\TmCRɍ)ifQrTbfe嬕OڝI2([C5[[ m-Y-pD G#0 U`VA@^L(n%, DHbLprC6c&ĝ5>+z{ TJjÎ4X adu%;v@R <=1B ḛ@B``@$HY4h(@e q_ӄU BT)B& ,c%+Sb۬EKoّ5 ʈ$3^#}JVQ]R3dq,ro !aB@3$%wKvL 9ȶfDu#; $'Ÿ+Q@uq`(SI߱)HozfA`0$@kdجS(ZI_wgMvEDK! љ:z}Yd(bpHd-Evk'%RHP@<8}j,AoNt>> Hx}dX: 9QfN', l=V9ih0#BicQ6@GCb}eQiCKߡެh9Έ20 ֙91=;S8,U.uP,!!%4TB!(w4!JR4EQlllmUXFƒ2kQ2zU*UܢcWi1!|? s]=*(}wz`c`)'"Wjt ty>cMϔHu]Jx_Ĵ+Ji\R_U6EQRxD:|sGGWzHtc̳xf(Qa,ܐSY DX0t0TԀb$Z1,K,:A@!G4诟ʎafE~fJWHpOI"!sb" Üva@]X3FF TEWZikE`h|`UV5 Ũ?ΊZP=>>40re__C}p3= a Dil2/HQ]bC U5fUE `׸%1u,֗*OǙ@DB젨I3Y:ܩlt/!r(mᒜ1ׂwE$V|.Ƈӕ\q-ᚳWVEV~vQ 6P\UԻRBIa*7zEq0ΰFKÕ_8?=2-di1=YX"R}@B`xhǜw7eZދIٻӣ&;Zkart>7xjTRT0 Gz$z6m.3.TFml=o.4{^U_WC,OHeFvb@+J㯎NZ i.sG6qօ{; tU"1 Ri+-jjkXq5dӋH@z,nrv . H-o٫J0vv5>k4FQ#>@ r0ⱉ6RE^4M9MFs' /oP۠{ =]:oUP{Fv7knP&>Bg ll4we²ֆ. K5!~5P%i>=tJS*ъM!A6ёʫv+s[EWTzeZ6UTTTco\TbldKj[n.T FT:[Q$bГ*K8 מ-\]p@!A 4 LjDtȍ6bC@ J*Кۚ5fT WsޖkMѫihWm5YOuM AchQC*'ou.bP`1u-ij%$&(lZewe--,HHmCv51*(m`"Qx`n&$=pN+4>N 282 +f!%/@ #{ƊykmP9/aw )!w6Yp@q n֡gNe/$?<((V:i }/Hy}8ĝ2V+c {BWfm!7e@rކ.uaE:ByLf.czjMyW)FbѩHL[ ׋%iW+ۇrTє<xxNc7t+0*R]lݺ,@q(SE_sK֞ E;1QԬVNIRj^AhlId4Ӷ/SYWe00'y)ߵI1G=$1㒻SLHzkTJ\k.tyod׸SI<ȌfچTL|!N |Aȉ+ BOdQ$eSXjh Ҥ*bo2D%n 6Db9ClĈ3Q}D(B=i@RLIPG'L_;:%f4BAK11M{҇c [YBbgLcb֖]!zg;nhp BXse, DQX/0c&aI5 (rHm).?!Gs&"("Ui :t)JwV !+݊`Đ$Ĥ , HL'@UUL )ĵ /30BLF& Ԛi&-E4 &!>P A$@dEDQ:=RPq~@hj̮e.T-ҔͶ,BڬB0[Z]vvIlf[ۮ曦kwck7HmN Lh:Wg1}BPSu4" (PT@21(!(!xpEm]lKn3"Va.F1eb4 QDzfaEܴɻm [uAU\ӶacdYt64AtvL pJ~*?Oǣ??RCeo 肑|`n=Jou,$a&l]l.BA3 wi!p (dC4{5ؐT;J%AbeG>6QHea%#za ԌH|&s O)xw't<@=#J@mM@Ӂ ԆȌ4k_ TMr1Rv-K^egֈTPY.[evڷY.1*QV[%2$UMӤز@=}UBi R$b4IͯMk5=:g1)3%J׭<5}|V! $aCӒRM+mImTzҝuzJ dY:R3̼Xs$Th VV@r@RRÍC턄0'h^ىL4MON;ao0P'}=i'((vdfLRG&{Zʇ#lA457O/  hC-12}5Bh&P!L(R#p!zVt4aDFQb dm2zT[6ї_nguuFaȨRQfXR"~Ede 2 ,ELt/]]aO[(n+62/龇l!pTN~i˖J\'I6e5| Jh}=2?/Kn7Ch/pOf $PG?~S)%lMZ,bۨ'ж)Bl˶8 klRE;n@{"9sHFhDNBr6Hu&.o,@EFr)n^gmv<=r!NbmN]ɑ7r Uy1X[_RCg9Rbv1)e1)n:{SSgcJű7"cV89*հ̧6%b=!^N^m GSv * GDTEnⴠЛ/ HGOsE0ݏP "мϔF2Zm4&*Z5eTmTIi{cߢ-͝҈+dI(6 W%-EJ/䆲 cgRd7T͂qTK7{D6xzUN$6DaѣmD #kJ:Ũs*bDq"R$P>o5. z\a6\e- sudU0MȩUI}YI矜k!y0vߡo?YvꏾFQЪ/:K;LUrlqݟB7@4SAQTM 2 vc b-ZQF uO[z9>I=_b)mfefhkE[YV50bTy9ҵb?GԖeWa,zNA;G) h Âu#RCD4p f)1|`2 HHIr voht4 !IJ!d"MEBv / ᓇ&0aLCa,p4S2[nq9'$m- H'(Zf]Ixe zsB%d/PwZ3d}wb 0IJW$,>&J1 ް 4xuo1(2qbʁy2!O71 P '53ˡokAM%))8?j"4Z6Ln>&Βp11It= <A5"a,=|_@|"1`9W&a`zYXXԷ8- Ɂɂn @O~D6 ~r 95)ͥ+Օ!!haw?C aP袊:B:3IʩaoؙeZnj#"_3VD^)8whk@7 a!FDd:Rx&&S{%>)K%$*5+l[~4+]ІWhHN܍'RYY׭0=!`:Рf1۷Y] NXP%B m\X$A,Qp(MQf]?]~`㫱|>Ŝ.)جhiIRk auf̂TX!5NvN0VEOl7]Z7_!_U I@ 0!E;{:\0$62~E<|9r!3WPO݈H!e  E$~43I 5| φ88A![Cd eˣm~0va:ݐT+)Sg-ѱkjw8`XO~TS"Q|02fQAR2[KlPym|Hy_mr^tt_I5tQZWLo*@Vn"jbo%k6*l!@Kfnnw06:刊"vt:3=yYYҁHؚƣW6K6Rϧz 87UsW(ZeG)^fKa_*(Q&G@Gl{M/ryzf굼@ >\ɞ#b9ujҙ3 z]vhQbQ1,R{%)(w۷$C:,1ₕa قMZK:bfcx"h㊔A{PVԹ*155{\gŊZ'٫bYj YxY=uC %$"$ ԰Pf|o,h0z/Ot\ >j} |BOf}zCzJ2BU`R,JH,"^>S6+2ћ ,ddP^;2K%ۺv?i@0)hBHh"1 jb:H^E쨡0'd73&04JH}:wb#A2Oަk5%^}bFDHQu<^/ ?_̥?w8vJBɡH~}^+ñ/wf>=X: >$y H/9aps>m QE”ߵ֮.]s$WOdwp659tjƕƻ-M1)II +ʌVIp}S-wE*ʕ3i֖%IbM^Fg9dń?~Umg?k`{P)ol[ۉ9W-{3zPDbCYӃ܆x!X*AҔSvݶo2X7}Jݪ Fi/f%+r4%V~4wfb߼h܇ E!A6MD?OfC`8dѢڟ|9?ځZH Ї*K̸IL\1 x1 (砖Ǯsya`E2 W"sITm(Ͷ#iۻ61wVs/9XulnkwuX鵄r&J( T65EXFIiL9U弮nUZwkni,mIcF ITkTkcDOBh /}]N0 ߁EA\_ (S4փ)h("O/}qcs'Qx(KTcoWv&3.t/d˺;LOL$`K%QN$4Tݙy.sZ-vl-⊢BMb.}hg\4O @`67uRҥ}3[\ƒ4/>&`׷} :,RbԲ?GABpQ-ݺL%=t/" }?]Z+]"pHx9~1I?7`~)i HSjRl*&ZJ~wuZ(L$4/@x S*<ߋȡx{Gk,D>vBFM'h1IF p6"oږF @U,5AS-$6Ϙd NHe 逈dDB'"CCvHI֎b$>q'XLXPi7RkZ2JX Kdb 5I( A߹ؓ  <|Qv!tDmä*t n1L Wo.::3/SC:ha!tkNn~tfxFG<9ֻk怽=;Z ȍ"};mPbJ(y覙f+'g|y (NBVF6YF>'E/EZ,DQm7SUS +XdHRXVveNzQ/44RE|iv6dfng9ݐK!w$uι$=y00u(jOngC.p3<:<ؽ$Z&Dᣘ.ʈj=;gX^v.!?I AyhVn8.)|ȥbalκާ)l=k=PrN)Rxtb-C *"@}xݜe/f{*\1Slq* "/Wqȯf.uIxAs-6R<d >-},#dv+:?14TP:`T`>eUvAG:N.{tNЊTtf*X ϐ4F%/$'|H큄tD: ȩhI'`L;yNMHN-./Z}(,6 H](h$9e! ׽Q}7/[D4*۟ 4ZO2f.sMpr7YٜڽgAsIׁUJuMTT"{x33  I*518cvgKO o14.r] 0S2="Nà8" س}&1R]=NLA4p("l1 "pœLc,:Hay|TŹ( ߅z+@ !"4w*{%{rpBAA(w!C4qA8Cѧ v#Sa:.=8 ^C@CNu4.|g)TGYIkӜz?/U4#E?DX Wqy;Wo"h0)H+SRn{Cj} ^rPx:vp 3 {t%Y(wG>?G}?ݚϳ n9`{ XӨē5)3K*\)a_ay Y#]N8'| nEi8R]FZ]fR)NZ(ec+,A=r0QS%ADmlqRS;Hlul#{Y!tS"[[0{[d20c3A0QT)R֋7A(Q _^wX;N@1{ҧ̞0aokU/ץk+S*uU̻ݮfܮKuCTY&ͬFDf"Y+/` 6q Gi!@tYywXj3 ~t`PeV~R!KuIqky$w8Ԑadâ l& %4l62C рFB#U@>&G78!?|!d=oSMߍC3>ēM@RBS i{_9L5(jQ K9,X/ m@:i 2b޳זK\5:l\%.r**mJ5X@Ddc2}R|ESs/RnVz`on>YPSV\D75/=:Q?2E5H'laT F麲G& >S{yJ鍘ciH( @ ')dQ @ 2%o0tlGd>,M|Q~ϩN_\!'(}bdzdJdN"~fӿ>)pLJ뗪RZw-}Gȉ7vZLcQ426  D$ կ~U+vӬ.HH"%bB #FXXLO(pDWgt:PUA( @bdk$ KP Ȣ Q@ɒ=aFCh F2lY((eN,<4 $*F`N\Vώ{fٜkq{;** w ީ,S.s%,:ڭRRta_.rSu6\Xwgͯ '!gVCOIN48?QD w 'NƦ.3~Od[ZRTQV,,iJJ2Pw6˸xŠ\" Rr=@Z1+% ]Kt (agoaEUk&S5_0&9!T G;g&M2P KQvuBDC H8$3)JUKNCd{:#d[T+hg6NGk5Gu0$2Uqw3NX_uz]e0miJ;i ''훓wC%ư`em\FP0 @iSz#ڊl̉0KYvE q]-{r#^7Osw9bnrDV][izeoǰcm0Jhkb[=3BaNKFp,CA2&$ 'kYPc2\ F4h*]\9߷O?\5?5>B4LLU/kEW } 8GW3ϋ a&[y@Z "dT66iz๐n,eM + ;IPɤ.u.MTXY;]k̰YS|8}mraeHz2C=9_9RU/R5fa~J:xh7mZm!|k-m?6kW >쵔w oYda$ l!aHn<3 eT\vhsz7JJDQYč*bGw{>qW[fD0cBz ֓: 9rQTS8%Ċ-̘b5r([چUL@fOgfDI5ℏXCŒ]7sӾSZ=*ÒЦbJeu29lY/"Xgyd ٕB$Lv/ ڃQ߳3օ\_?=:<^<㦕ѩᇄ=%%UV :C;O'j\/{lVkȲ",r>a3IINMyRbv/>wW͵OnxL؞'Lf6œ-l,ENf[> .!8z+wb \q $C(WӃ &,.uY1pHB&'Zڢbk=)N-a1i[z.2X'AyH}*GgUR&"8SY).bMζ{5]0 P>y#33I*hII}ml%aՇP[VY4gkT&4TP37\:J\8ځ2a X#م.v^4P IPl& ^.g1Z}.@7Ur6XҚD֐đfb%ueR/heY該κAm)[1rE@^7|mdNx}%Dqkt&ubX9=cwoy5ԅ©ոù[7Cμ&d4/=yfW: :b(;BL`p!Wf.EChQR E[Y ڌjG*'*A:#[r$,\Q VNPZo$Z[ß>e۷s@}ê'PtV<-Ѽ`ï,BBEt@X<zrLIN99Ņ5u$40I8fm{Ycy*Qd&8ۭh߳ǫ3 뵠AMt_sy>GkEpZض:=Xy>- ;pj*ѱGnPtx k1b((`fku8",x^"9Ѯ9-[i2U]`,b^0#v87}Nk:^el0ezti3Y;^^(7kd ! %Czҿ=bѵB3 `}td>9=`$9XR +@(0zyM`r^j9` v M"p~oK?v!ڕ)7(p( (+;SKɖySʩPX*[Rbt8r3Ҝrv}" :I3ڋRi|H8C0Az倖` TP)`dyS4pxIK0M<9NGrN P:LԜT:: zS3vzfW`BQL^).i룐~hy^GaH;UG^Nm.ZPhL;iP,A6 d סb{.>w#0@Ѫ= ϛw$\N@Bƌ4uDt"J+ *w4{>~Wx/̻F J_fhPTANsT%JL)Aqw'W o'P?Xg{uϲڄg, JSIh(ֿl&hٖ"(R I]^Layx=RD_p&mZ9!e8v2|2yA[@Ҝ*u?˝@/;Mz<_p?l>_y}.31 8Cj{fP:[sgg;Q]- 50n ~C3b[̨!R5q7exngfL}]򾨏4Vӯㆪ7J5kR+l ՙ~p0T-jPP6Jд L F?lFe8O=C$)AbO?qV uEL^QU%= ])x L&uggS"XPA8,&U"j\)B[@lU֪"ҋUєMD`[;Y.~τG/hCib\ 1>֢Y!u**m~0 wtc.6k+ٓ!hD|7࿘(TnvͰ_IXS*p3 $;i{!OʔĐc$X#& X{0N.!=@S.aWq & U$mQA\Xw4QOH JpѠ8C혽=e:T! 3F vL|陉-.Fy2E2:dI'*yYNi!+bw!}gSku5BE$T1Ew?WpJZ˲諷j 6QD,b^QM8dH uNUhdAJ0qۑ:À׎L_x5?&CY#K'ܽݴL+/Aa 2SS$Ԡbmf Q*a?)nIA0k2t <Ûr307k}>~"~Y z0Z#,id1)S@h'؉e~hgD} :[ 8@'luߕfAّ(4A0_: OPbUUw<3)i*=ALU]XNnp3R*^i  ӨT|8 +fPd+* Sq/o-yB90UgǓqQ:{SX( &Ġ2wIDJ-fTQtmTb ԑѴ/Yjb?b12hYS*%I$2Jє26/ǹvc]~hq4",XT[xt>1x~L2*yQŜae;nƫ@ BS{5Sl+Ɯ"?i'l ? R!$Ο+#vQWBHrnsIJHAAI-FBNfM4| }߷O}Q!;t{O+ <0+UҪ[u JOazFfeբi[@oK0C{#ATQD`գqckha8n* RQ9Z 8qk,ūKFeݕ?؀,+ƴ:0*N9A )]>cC p$Jsy]=W 5IcE*՘5!ҍF1,P!H,$…~AMUX_沒؂̘H&e mkm<: #d_9mHKsk v,:`BE)"(X" ;t'.԰>49{%$ocбf5N㠻BO|Y,b HseD&DN"'cQj\#~;4l ]U@J{3 3m:1jU㾃 Q d(q2 ;ls "vʴ.J'( ԇ(ً<1+q*6H:I !:83u@uADi(;w#ck/BObc-^}5y*o 6BOP"KBx"O']SnͬQ[QX' T*4@዗;OdvgnA0@O`GS C@0I'Y<;!(rh2.O2.p*ĉTRDЕ`)vAew&VQFX=]Q[eoUw@vMWꪐBęIa2rv*1V *Za!-o={w{'/ԅQz Yz# E .^iag.uةPB~r7?QL4蓇ej퀠Lsonuئ%6JUehl T(2zYUex?t I.ƺG $U5lO)+eY cVS`Ft|R=GALq>gI (pi!"ڀ@<(uHet'l4ERQIWcf:B7>v:lhdvYK&MhPΟPr"䔂O}uͧ8ᚑ PŤ<;||I;~Ymf$ڔE5φ5 94LQ(1j{Sl, dee"1ԪYO\8rJR ^8&"8c~FEaLNI9ZLCq0zצN%=f\ƎN %F}0`o }&^u+F@!Ԡw B"%?W Tb(5.-0XK5cɟQڪfݍrsMB1t#Y t^K6 8x~qԣKfVR1Zh{E4ӎe0vPYՇHRD#C@%D4H6Y?sNJVTgRa(I*Y"2I*``t)*F"YO}yΘmӌ-t jEhcE Ļаn7'H@|i$ 9"2!u~vӕo[ٺt <(M`뛆׏{%Nly0ٔ&8,"dVUcU5( Rh*Q1͆rssg'CAlcY4BnhR$5>@D`d#lXkY@[B[TڊTuAL 2SkFJ Pf^h2gSuMmv]aqtb!DFɛ ,[bBM5(7v/k[*Pv/+&y2aug\*in:-1Mu.ε ei`(R,F Q.(]X:TH"X `&Bf۝rKBKZH%aC0XXʖcPTvO mh;jP,YlKPN Dr%y$EEM&@{O?2}IxO8$=!O )( Cۍ cd5`ô!ߟKU0RA݈vI }K-!$]B :a/Ut_N٭G#;E+׳0ወ#Ꟑu7G2LІ+tG@=SmàkGe&Qt_=lzM!o6Soݛm8xݛ2]C/N{Y.oq!FQ iU]Zwk%c!3V.8rf !ĝrMN*7L)mvU[0%˦GFMwG16eM`6Rڕ՜=꨻JRW{!o]~#h8DjyM@*ktqE$P7*˱(M:ؔ3>!8%SQH)Ls nULJ(   :b_s\#Wlv3P$.(S ZWJtI4 .$(zvJۋaJAe0DĕӋ}z>q| g1Xv|9@R?o!|$@zE*k1;D8W=p`Y_C}9'1@:~.[^QTrJb;|:t/og}η_HaG |f"f^% L>H\!XB1 _o7D\u{9DAٚO:/07&g;қᾊPNz_[di(6Dۿv ]bԝHuVvyovt)}]d'ьGEBA1:Cq#k5*C|ѱyE9Tsӆ*Gm U/&wZ|C\o"hYɴ3I!dnt!0? FB*LTVXH2^'zkӜz<iyq!@A\:\TqT;˜MQexviiT9 ;S~k#8WJ cjhu֮ yCAC:ot^YНoٝ_S+X^ҮrP\©R:;ph쵾d8i;X\ , !zÌ;:k[=)pi{ $(&v]:Hrf2<> Vט28X%i1- T$[{=\%pUU+8;vR nP("vV!)*LMlg@QMV`h4!Qh]r鱗Q-"#]sLyϩ:ߞF*,Q*Sfhay췱r ~HV$ 淮R81s=;Ԭ ҫ@x9Z`PÞyS7g%^ڳ/x儔kiʹ.;&ilT̗}m^Fu7\mb$=@s:d Cx x spF$KwIo띹SSfˢk^[^#@wTz|/tgNZ&]뼣:)C^<,"+Kor]pZM*iB3v_))S\UN+|\IͰtd@p,wjP%]&D"D-oNžȦ))Kt`pKuT؛O%Xg3Sɓ%Ebrz?y=H'YAG7Qb$@P8emt{ŗz-KQͽ^ZUà‰RڥQL9k$*<L{@k` {&UfB̪Kpaxr/[|v*ޱ1:=^p.s]KL+i.1άжӁ"B+3JgHc 022T|^wG&6n(igSđV#fݦoAuIos, ]!7aӟO'2O %L!͇t'>6p{orD \DNas %^se% AO Tt ڷM"K1PmH4eIud> kGBI][1ƖrՐI:f`* ˿pRDfH6B#\& =SvjCq2NZ&VUt'*]j5gFcqU"HF9oSuĽՖ!DI娨C,-Qt>efpP}c8:S^˷J 4OV Lua;`4{!u\loUR_9[sWFVN Q1}ڳ_\, _.7⋕WR*f !\w JTf=Ͽ7N&$$%L֩J4MЄ=^E: yzNOBy$,wA#A^aV29flp=|@z(~䃌"$+e؂ry$ d-:]NxO>Z5bqEvYvise۽wi+Ȟws>0FJ9\Vk?6& iZmEKfwTi]SfKH~y,)>)J1INu8 Ӿ; sYb(`"(H*N4u99v%ApN{d i(lg(&plň0Eeqhke[.^Cn-T{4hv)qdPgb^;V5׈D]D1DX3~ԫ\} :5dkP/AǾ) 9QryGu<ʒR*( ňi=S*,Ov <ׇh~AF3JAVKH<-G;;Ya6k#y}8vw~lit0X+ӭ+<>rgȒ(t:T4 U7(=ß \g{&${;ܗtUzrqugnØQ.;.XuHN k#ˌq2nMW(p)k$iC'] 9$뚩b:Gi0et]|B((So+7 }A`t)X$h={&.H) 6{D3 /d6:x|7>]]o7 P4aMiu\iU0ɧA`PB@>M12,'B2d$Hd重=x5cb oB&^MYvF&xO3ꝱȩX%03t! QDn%;mքD`n FYҝ=AT Wo:8^ńLP!=/P͇Tكe%<0m$EADREr#g8|FЩg hh;X옉x΁Dž\Tb (``첲3( ЇShCcKg$fخHwɸ@%~o#>ev!<nA$Φ??Db<@v *@ OU$N~3_8>?kgyi1N8rU1I=z)jXfi1o'b<=a2$H f'JNT=A믤oτA 4lq20~餬2Cv.(T{|Tup={گq!B(CL|"lئlq.4" `+TcJlǬ̾oOys҉·`76TMDol1$<P=Q_ P"({'TBEOc!߯rzT79{%[}vʻ .S}Ջ5fflE$ GG*Ql' e*坤+iE"-KJ4ʀ2H۾;c='SȠ LzQ@NMw^> p%LIj_-}ZOBdՐ8Jd[edbN: ! "VxdFfUY(BƖ{aF ĊKu@MIYgaS{y a:bN2 $p1fjMNI2nS(XX%0Er x`&A"gq8DHH3ִ>̴X!:gnɨ"_v*^(mƞwih4uUbZޜn-)#?ɪ a8lŃA[KϻmljZВAY{sD$h=f n֜CKo1)1AkkFwV#{X"]ѫ)ٕP7`!2LwuP^ Ҡ,, ( t݋²4H/ݝt"Hy9w;9ZGOzu C juq1*;RV /sm_|+?p/s}H~ 5hq>BPLC3.2AB g8S^j>08ͩRZH]\W= _( ̳Z!][U`D /:e$2HSxe6>Wr׏r|'2 @`GJb],/|o+Ͽ4u̖ ɞgǂyyKOe+s;> \B {o!ILR: ;`X0ύo5^* ,E95(,if~}JjZW"fBk6ÈIՒSkV4 uv0ve8_Ӑg;wLs%@yJ%pXIcJ\heB(9 T]^#GV?wx80gp1QGAQh 8)siL Bҳ|@v 'RAp}9Mͱk dAA=m"l&"{S5He.ʙ~)7/5֊'n*IR+RUDch"[*4JUJɞ7D_SsmKWWXZUV8bق`Ҩ~2tE^QWFR568V:rO/ch^u\^.(~(w[p(-o[W)?RTB HBcg]KI7U%ݜ5"4 OG;E&uSiΖdʥKS\,c'kbjB U8qEj:Ywhnqk/GJL,lt_Bc[=ϲ>_T.@GYΦXIk5)E`@- G&L$LUI O #J[᫋#g'ڔcX/pYI}xr??X>ChQ6fL{Jhjw7%ߥ5nWxf Dw:z[UW_HZNx_:&y@{;~Ur; ATF1q b0%:+9E,٣Z|* t>,T`Tpra!?=Hh^iR~sf|AsEQU(/I^ƞ*^G)[@!mws<| Z6.kP3X t+(ۯ33OPAG&\HQnG㫹xv5<#OJivw*C[d3ԽڌP܄9 ch=ܔA1*0ma(Y$"[(C@CC1KD_#!V"e$C֝Az.;#zzgnH4SrMCWːo̭q9Hf9C;6:P,KLkBƲ9D^G|aQE>v];2{I/Mƶ@{_ǥGFBKK4N_ NU3-HeDŽ@F]=慥">nWIgV]+.թ󂼫AdtȣyS'?EhszuRj#ڬDAg3AO5zX6L5K:7}FJ@P/2]G y&˯'xk/1R.F=*<)2R9ώ% 0If˿ CUq}6wO5k~kX;%~:dvb_gb&GAŰ~MxM>^OP8}&A ݼc0;1NRyn,|{]D}8Gq_@Ijr>,Hp!E`ְ/52JfήDFYeVk s 6P޹blGiYk1~t֙Svz@yoi_=5>g!s?K:KuBйnKンnzDJɛq<7 :ņL &I.G^S_yq"Jv^m=">^y5&ak ,D@t"qHZT򯊶!OTOW EOlq:|)*S5ȟ +pč@+A{Aow*('g&/~}6ڸʣ<3)S>j߯?oBuRzvi_b]?OL!$-pH$:}J\n86<(~bZ]{֫$Q{4nGtbdmOGGgzB0Pw"MӷW[Ǔ(ʾdDO܏*#? DF*A A#?yx~|ac/ͽ>~|w\L 78%.yoA6ؐer+tppnDP eKBiIX Kũ S)e[s a.E>S,qn^VT˽e"I/$L7:bb{8Py]K>yA4 &Pvq*P5H؎?Fث@\RH޽b$yB}WA6|'\Z>W V|Onkv:GǏ6b 9IC{A'1QW~p{kdi cGm-ycmau@ZW7LF)}Hal~zvëT8$f-#a!r(8ŻJۿ9&9'`y'.wacf wNf@5qm~ hNVO;f.i8A5H4bk$Z,E׏[IOod#'0x+-ΔO[G6gBqQvbA{K :2'][O)_c0m ߚpw^[|Ҕ |ͧ !Kr{ejy a6G̐"q: D(""r~Q1gC[p[7n[Q!83k'vTʿISWuu8@UcUk<-`׻R'3}C߯ ~;x彏-dO(Tgb4*M6;:p} {/,c# *PhD.b q)LQ(u᾽6L;L+,N?)),Mҵv6Zt6zw)~kC6ᾟ:TnR)_*lY6qLF@ƯM9QOE' FrŢZ/>i%J5>PkP<('&~aaб}R(/d:3p'(M Ol0W )j~B$F51ʺ}'-d\7vרPN%(Ҷ@v՛!/|4by9|4#KdڄΓtWMS$-pu_XrSY^8?aL&eJOUW .5[4w[CPe<;qM}2a[?_ E@U>( sXBf>8~6,ŌnꯣCkG97|" J'N^Q[Dm)$l0Seb1_;4涨۠_Tfi_ ?3^3.A/Z nL^8MaEڇwɜVDqMQeTx襔2/m)uī?|ԼZD5{ň =[*!wMV*Lw7BeǖXiFT~x-[C$I2緭}>!^Ľ`?~fD!?CSR))Nᄐ1AvF~-귔$-毈E8ČiĩQuZ{'Kw&?ZS@OrG3i%FހjA,dnZBfArwI{1^AݍihF/$ djQ?dr6!u KC-Ce~x}YNvVibFWPE p_kz#&gxxe N xTk 9;3}͜ZUU^w(&n6W/ȧ WޮvycC;Ylϓݔ$&?:CNHeRO G;Sw,,&-&}0Y霱BVV~R Pu `z:h7omc ն7j%IgJa[McG CucF.LJ |3{͛:Hofx8B&/摡|P\ f1"wVC[M <'̅-sW̺W4m }Є&tzlW9sҬL1.۳ ;¶Ꮔ 6Mư'F5J|Zer?IXO͒TU2o$; ʹ Z,f (Yu / Ɓ}Ovz/Ξ;;[c4ču_{zj6"I*e|#N> b3xbc nPX>ڹ!_CI"()FpfɌ7}_-)E,4tX%Ga'68w%^ST#>K_ cvȚolWNѾ1#pTĶ\~)f!?r2l;cYp> h#g\h߄qN#`ޑw|; N]lh$T*8L9GNΛz}}w%}ehǧ){rO{.]Kn*qsbjECZՁƎ~?E:s7UZ{iv{*ŢW5S .|)dp5Nzćm=D'@zxүDӧNq#6 zJ|Gsݤ/Ry"#$If=1x>-dKWPh8/\]tHFRU-o`sKv}i~WVkY !LoK;9 qK 3ld?ħLjeq?ǩ6)g@W|ʹ@O]eM=+  Odp*phn5L'_)zlR#aL.' p9ZP.d5ou~_&ф=5\~(|:NI C ~bz+˹#OGjOR7άvt[y{x\aC9=gre9IHiAoUUʬүJ͇sUmtu4,UwPR=Rq=Y<Rg>TƗx-{ mw3 8Q6$Mj TEǒ@a7۪ڽ;uu UmV69~QbGCTccM)"eZ-e}+xy&Ϭy#ϥVؘ?gL̤8-<p6x/mrs_R<eu-RՋ+{"7Tn*@ɹ0 }ql= 6/EWΏ*)ρ@ܴ1猦f&ϳI9NY1DIe?橳@޸Qiì{? vU[[sz9{5RŁG>o.\}́C>7fv5^ͿtodjquwxxKƷym@pyMXgyzL9|n)B׫ wSIӏN(Ӽ._;>b:|KO#͖nkƹtU-FxH,HK,{/LިO]l2mqU>h}| y@6}tÎלc׃YdGNmh#m}vR_-^^[V/N{;:&*GBXZTL0Z ߚ&Dld)3}3}9(efCɾ~N~EypП}R $ǜ,web _\Xx 5/9}L}-2\{s/2$xt~=W% ?ՈW\cQ?lsk1])נrxBpɪ}$.MA9 ,9!!tJgtӊe[sl_G RXB]}:L~cߕQ)s99))ܕԡM dXly˵9952Kvvg%d$ʮvmyP*dRT=Oni~ l܋oR_ԍf8˿9bo4T2JuHv3 rq* EdIzQ2-V.* 銠@"i QFhV@3]Eҋ+B!U |SI"3՘Ŷ&bk'"8ژK.|: G-LFؽ^#cĉ#F`!Yy>HN/ߺ@O)qP D~ |꧐{>, xv(-Sb2~YDinA$_0Dž1"j:=>].AU8Q\=A^07VIpRz@5QNIak1:JFdCLH kMg¹]\Dla}g!z"EtDO3؃?XL >c*p69*>B2 k@{)Io+ʰQ x􅘏G#å/w-qE8!WbB*Ͽ_/CMFE Kt8#ֿ=F~v\]~QZ0ŴUۇ*'nc~wNGNPc1:sV1ləyZ(`JC>`0-;c3nڱb g:HoMD;9+C )D ` Hn tssQ}*-y^,*-`;@R젗*:gm(4ŝnQE@[0DJ e*@($iZ"D39+&`KT ڞ@"&0 G.-&w`m |4sj̘y<7R Y 4SuVZa%ᢩRuRA)aEv!ȧ *hQSd`Hue h_&|4YUB;hkg|v839iiwi-0ʢVuNA\qBqj.&Kj7lsQR$%4K5H#;"Sm25*90֖scP1Ѿ!hX?<bD/,QDp84PudB8ޅ'N U.(*##bE4qOș99uylFH]%Udi,_zٙI#ȧ3ASB6L4.x, (0b 1 6l0'!h9HoP)_:LXc愬B:)T$kT6g,f +++pZN4 fpGSt34h]hDf 8l$4Uc `S}EI+=uhjLJLiXA= F -#ʅ2%842̹TvLTbZWq… 0,0ԔX!L\AtԘxF8Y?Bέ (W&kȞX>s؈`,G &Dw&u9n|ޙ=d6wU%e0ƑER`aˆّŅ,"G#$"VL$lyb/xX5SH۾q*gXUR!C:2XiOo xQmnɠ= L-KM`@hӎQz@xnAJ,.2ȾHcR7@pƓHCmA|iBP  xA_F]sA{m ZלπMҢ h2ǘP҅EZD\ EW,RB2!p3Ehuf.L[*1[RkޮQ:7P/:G؏p +{щ ,2㢌< P.M}}O^2a=7$ 0$_TM"^1Bh$8^]15c?3B1 5Hi0N]X@ .|3  q͍,P2DP 9`1`S\QKjlDj& ~~MʻeϺihi$ZRRR;79iMMYܚUFnQn $䋣ϞcBkO7F /r&f*:kjS8CBuHEMYfթa$&ǨNp:lROvƺUN 6 8Z`) J䶆bwo|i1E"օЂ`#m,&̐6uWou)(@ + L) y )bz]Q yҥґc(E(\Щpf5kf:99`!zU<ϭ`LBrXd'/ma@JbIk'8!ڌ-?5EePAj>413'3ԦN( $eԁuGi,R-%2lAQ㤈RXe4P`Vt%06^tt4hcc P6 5ON tG~5;ؚWdR/2.ԝs&G-cgcG$ՑNx4Ϯn?[z[Kt-Wk8|du%,+J-3g-Ú%S 3j-OnM)PUא/p2q*sQ< CkEMmU3=H"+CzG&_#$dSc@xʃ=bw>ӺW Ή|D߁L(N`Q)\~k:cIpTWy6,N5{ʞ.{!WozM=.zvgxzϽ6ur{H#]k.j9 ŽMq+V^엖z󂗎ڣiT=GboGGW/6~wcksvq ;_ݮvy2<ڈKz&T9N3^Cu^X>,j~8LIeۼEۊ7^|Id[fZ3ZߜɯS2yKR|AyCOOD[BVf + z=u'yMNŴMoBלPigGtl-)-B6"ʩ@.j~,noDܺ3zt[y=?ohWv('AÁa!f%=s,r)^Pml\vj um7c*KYÉ&*{§|A`6oUO •=SSH'AQ!Ǘrm[ MPIկk7y )ׁrk=*{ΓL Y=82miwqZ{־-R wd4%#,0D>Kť~u t4z.jM^M+μUNo8x7$xtyʣWv?D6ݥ>O7!ó($Zdv?7?C\bKU(^mWvoJVz5]|:Kx| @߿wZ@rp~7ɵ?3q7ЯkBj1T8b+LAX1Ub\¼kZ S))fTlK1Z(圂̭((DT.V-Tݻ U\U,U|IFz!,& ke* ,ŴU 0Lda J]BEt6zr$Vշws!"EZ&.)jȴcgjl4apT҉Ek*ƈ1- -&pi(°VDn*&,K+xeFo&cmi6!|ѕ.ZcV&Z3y'm)%F7 &SV;fM&HX iIvtU,d\s#I5 8PM[EVP#@Jb Vyz ؉W- qYSwjv@uXݱvJmeۼt9NuRά #prZK RE)Ebptղ\"bMۍDD3*Vf hf6-C20PHqqƔ,"!Z\jXe,eTZ#ZܙZQAZe[c]D0aUkdQ&mk+Y8.;ZoQˍf\ Tmw2gCpxYD)k,UMK1գÞCHTT`- ͦ+Ak ReZIMZ$h0`zX(,LecSSn imƸiҽQ"2\ɊB"`՛aVӮf^dӜ껦 .U i3s +CN*+7wT6vUk{ٵgƋz; \ZaWr %e:;Q@utbidƅ[ xZ[%P^S5d!4,2j)%.PqlJ:9`VηiAevmL6m`!*@1 b 4.&Jsla23t(LQԍ I%H %cW2 p.$.BY̛۶HHa=a=!P ^qsiV`HhB!MqPyHEmN;F. J M`F0PqwPH HnP.ᘩ01dR2Vă֪L˶iP1!2,N/+5*$MG諕i+Tdѫgg lU3[I\-sb},aKe_&-vK8sM|xX 7wL%+ҺKgq]fLUmD6QQZ+ym,h*Պ)t[TZ+ح2mFZhѩ65F-Z_;8֒ơ(D Mys7{>0vGc;?DfbughUv BRld2sɺjR& ¿i]bn;%H(JݝL߮r/us5Օc me7%1dj(a3BKv\+N|.2ph*|ySӶ$HIxMe®6.׶8BD߃.iLc\y"FIJnvRgAI7\BaIffdd9rx,a8Cb#݀4JY0la)ihQٖCkЇTՙJdTHmyKZN/N}rwO^0h_ J{GƤm@{0A`v(9G_O JV"~Urx%u#T(u;kWIjRq onOw N^g-[K#W+NڛMEEV"2d1hQCJTh#wǮɶcAk r32pDythUnەj-5+[*[m߱u߱ 5YPLʌwiZE"jr)s 5y`:@Q9X)ɔ f TSɾQbX]$=]unXѯIAjHk1m˭JYbJƹm͊M\^$Yib rxr%m\bQKof4Qb! D-sh٬nzk)KJ(-d,b4*ʒʹ;mv,gdAJů{1KKYIAܴVJՀVi. BhREfbÆYm.MGzo~۷5TdpHJqK,6&ٖk=k2:V,lv(ښ3V[ + V*( Y62N-w*$KdJY\TB0-f/mz\x1eyWQQ2Ƀ1%-H,1F! RXr %R)Jxw|ץyUe dͱ zT5ib̠dahucTrJ >:H#^/^Lc"T3.i.-PDfAUMN\Gw9FEFdc1a)qR)V1 ͶP̖٢ N1S4ԊZ9QS嶦TQF5`.}yH͒dP̓HlJ01%(LɨztRFHIdC$2!ȲLhF,қ͊6e4#FAfb0xv.M& ̪i5VL6dh ŭI/ѼdR[sNG5 9]ΛֽCS3źqʋG௢熊rj8S"55d4 g{k~x %HQ_a0XaJ0Qm`p4ʥLdi#L !6B!1EE)x#!?Bf^(2ą0AO$M5]4@/uk(LclI-~}QXdɓ `ZR`1a0̈|7ljչ,Qs}E2:H F(5sG4Ed!bNH̻Mpݛ RJJY&llE cb5^.+p$ɍ>{CfB"CdLLh510)-$"LfBD r(1aH(2f"dL%BDѴFɩ6.Uݬsr-F̝ہi"(H7 @KPP3ZRJ=Q?Aa|'g$vJ_l/=H K5`:_sM$(.yiS\oļMEwYXQ3'޺F4ޱ` uquo}}`z結&c CښI01OG^;ᖓhb0ErwgTBIhIuq6"Fn7ӄHF!X`wuUK|ϞI/` 剕RҸ4)܇'i2P'S}W*kK{ vD+i(fb 圭&H+#cov1Cwc_ v|JKlQ|+\AQACu1|B*ı·6j hִ` lمH,9 QՓHdTH΁\fyu5M., 6I@~v~xr m_%4_)%NJaG zLH1Bbev߇=(X@bfV7?G](q*4_3^{K]n^Bۥ9Jߎ?l!!l70Z' ߍpSj'O}x6JJ/H4h}9|ޟ? xǹ6ǚq%rZ'WDVVU1xwZ熐D5Qy\[MIs D[?iKi}!S϶ǎ9#;;Y++ImiBL@:f>z SJNʩ=CL{XpXz >(p>k67XNZm|s#9{'(e VGQ_w~߮TҔ)Hғ9X!2jHoDAA((J;dJ!;B{uP7Uwi(1@J+f u ;F[@ԃE(!CV\ܶ Z!RY# +HS~RkrC?G bdҐnHXҪVj$xv?ժC燳ة @HUDt b<O?e4?l/OoqY˖dA<uPV45m * 19 ?"Dua0*x<Gf<ǏwL *T 4S#% kFa$ Нݜ/6zm?Hݎ|oֵ(vեT@bXQH((ogN~>_sN /ͤ @rPҚ='u~ {b6-Thp|dP ֻoUg6c<Ʈ(yynJc9dR fT4VCK5'&GTdAUM0H|%]2);d 2g4khnMM*AۓOC~i>C~>/j3鑟m AǷThԿe`HX ,6H 9)GHbmG QH ^*ˍl 밋mؗFzAa}Kpv3輳 TJBm+B"&1.mݚJᓾVRJ3JIh^-|.;W-VϬ=f5IЊE*hVB x=e[ɮRҬ8BhXhrpH2Z%Z('ÚafRWD0|S7㌺ @ITAu%8$7 8!A?u#;P}t ~uOw EGQߞ%b=Z@w)4҃^H~N0PF0n3h #GЬ:_{B(ܖ-"&z^t%k"*2ݺI&"ZԇS:g,[w|[vM4]_gEA }cf9q~V< m<]"xx$ T hGHdRe@E]JfG5kEQdjZɭ4BLЫd94:ZJNSv' aD|4Z,b1+y(h@?yG[F ! cЌ2x}~YLҥ p< x\[ؼu^3; yTQWf =ǃ;]t>}1Zr WcZOv%B*dz#'t"= @Ǐ} cHؒcټI D!4]4|t?g>i (Qc+zP_O. >I9 93r.mҔC|,"DuhDǧ?"AIzzgk,),;qix}#}<&0y ~<<>FXEOtHz_q3'h{] <,?vOװhI}Hyyi9<]?aN-wJmӠ=Apv)o)IӱcʯAI:^{26ﴉz|ъ'i_e@@|a;7؀Zr<m' e5 0׼N'iDuxIzHou*m=Myqݠ' Tb4Q9CxaS`Ino=ˈ' 9Lǔ!i)%dђgXP?u'~;>}߿CDGrUTPz`X& !(5dK'ú2 ?>c̠, 68ߠ>4}}Bz#(DMM B!Pk?ɆMZ q=5J-3gx3Kb06RbW&Hf3 `RF-`WwVLh,Lݵ1ƈ*2}o$KL&SS$ĚC20b4*,DR2a ە$E%0hٳaKoǻQ1B[gwG5dٝ۬DZ5N]i,3hL뫞ی_㸴f;ݹ/wtҍs[c* n6b\ɋTX%}kQ(MLBn}.|y v}ySE$X,-3mDZvj2HEDs(oҹLO9}>߰?k;>< DxJ?5& Ƀ츢7 bh  Pxm(] y}*:4 7:Jݏ$,D74vy8|)=CɄx- Zo2d6.fCc xx2C9䛍ȑYGҫH,R +0m Lp#&ͨRi?d;IM2%P̉H@0H}-:WcB#EF_6 &Su Nׄ,oE!p("Dn6#3 eNu].FXfh'@Ij!q;;YZ1Q F*/8/T`Jhr&oXIy##Sm_*\TDh2((K^+ `0_<ه$Fq-ү Gt)F;ѓA͂ hOEyd \"GQĢ[z9I/t:'$֓'>I8 ]Zkwt2mnDa͖_onfH}=N3t@4 ejuBu&R쎧SYc&4Ś <ɫt0T@$#`bڀas;ӀMw:b$F9d2N' ]}ʡwGCe},^ҍ°W愒MhMΫ1/BfHq>NB gN}35߁c$%o*V!FH6eUQWub%@,Vw Dr&EWKnW9 &Uvr~jꪃeHZ}t<TwƳj| 2Y=5X^թXr&ٵ~N 73¹T>HG#,:=8'CAsN MQv$Pצ|U]V's􍊱߀oBL , 9pqq̆l+>0PRjTr!?pdX5]}Pt]W1kװ) {(Rh @bI%[k4LnA[~=N)NY8SSvIԐ%duUFya qPp(cPD>Hٶc5)A:G")ya:)t$ERTj8 V2:(;=2ڂ)CG 1#"092d +tiW_B.-ۯL F`nT@f 3]>,'USG.խ"Ťܰd"8Vfj9OTQXLJ<.M)Rca,SmD[hhJ6&mM6%D5&FحcZYZV*(6i+ 1l"`JI$ԲآQj$jIK@|۔A{E5OSuvXN~FGKpJtGY q WMӢ/y|׎smvG?2SV$ !5b2ׯauϙNR3D2tӴ)◷ RȂB[}CkR[eN;}~8V5_ ξv) D#m[ VVT̵e"M/;)~K9FQTQ@i%wԕAdN:8,Qf*fb=].A'o 8 X EU\ղc9K8R`@%yFmj+vu[`PFrp5:#J0p %/ƢT DԚl{A[ Onm)`f:G.BʣRP&&8cpz>"9|Ϩ%AG$Ժ_, -Cw2އ;neT>lfQF26ԥJ?ʆ٘SZVcHw5b|&Õ'&{ ᩥaVܹ",aX,2qpc vLj!ɅJ3ؘ}1uae!LcluKEϐ](r"*<9\j J,WaT6+PpB#]w x aA2 bWQFFek_LEP`ENU]~}HvSJ"[&d W wto$׀;4]#[X>nA^gI8Ds@L1CPO@hgY $4A|1$dp#OVj fruvlw7 ~0o45zGԆN`U(STF |coL:oҫ%ȖVj15I6u"s-+HTє]ht&CB,#X+VH @Ɗ* Wϯ~o'0j۾ FĤv_"TUa|jr= N~tp :@E7P \}`T'KWp^vQNwdaQ=&!Hn*# /򝍠ex^ʓ,fmYܺbȸM![0;$r=iƭ{6XAH]Zl@t' d)PYT&[@vDaB틧jqӵF̮\'TT: UfP!N(#"b ˸4W@0@t~*Uk l)(LqP(*2֡cUl%Gx7:0 aQ_&RVw@PPr+}pA± 2D?VttXڟHipb T$n}çTƁ/^'YweڢD$^"IF憐}tv8TzK`$Z58(ራ!+h:Yh#Ʉ+u t\&t0 Y@󔁢 &8l<~Ҕ)JJ)JRM41g.k,a"܎8<DCÙȑqݒIb[RVOUGƊ 0;T:wXN;À9OaXHN s( yxJ"4 :K2ץgxLm h+:A K֨\9E41MnvWnCw;oN1W*mjG|#r_l>%3wv TeaG .m\"Ij/hy78"BJĩT]]Ԅ3y^]6"N, U  >P?*y`TԊ嶗Y|hs}^?ʻ hkdkb?y=!US郿urD9JlP44>?q:k|:m$_˪c,uB_XHn? N-1b|gzk6QP> ZJ<#75ppavF>RI B{haC )W6fL.z6n' rb(XGvh{|?g߾N u>*wMw2ipHd1Ot-HBYL @JUUwXDUzh5Qh  IԹz@PMf'=ĞxL0<^ :@fsX"F%R)}>x8aai-St<O}*C0bȊT@鿊(*`9i /`""vNWR\n<@a_@D0^g'bS?sJq= o'yli*2%}LGzt0,TH\O9_?KMeV⪩!0JIP ^EUe,ǭazDP~b=2TᐡM@A8lH*c8!;7K !UD7J~[a66:| 'x~ttaߎB`!Rj*@gCG5 EF؈5([hA"[*ןU1JP}<{cǡx~w'KmR$H"DRRRR,0H"#;1+)ߛ~{D.t( ADxflpxGD#gF}m.yi%~;񙏩*!H1CHCO!K(g'v#],(G,c֩n8Ә#p˯O1&P{8}mjc-1O%GX%2\z:Dr_6ûOl3i21VVp}EZd 'P'*m6١LUFVDEp&gkOmjtrkO]YV{oљ &ʍ^ טt^~$xHdzA렖̰!"-HVF`rUT_gXuee_;Ȥ!QU_`#c.biNSHQVj3AeFnvO5XjB5@2;>=+R`ER0ϐN!1em3Bs~P@D_%&h+F+e# d!pdYmXJҫj$--p֪}B}{QG(.m^Kkqs қCUCDV* R G-̱[:埔Ȳ{!P ?Dޘd͠GxY/li.z?/Goqd5(+yC=]V{C)e- 1S#\i'$+ŷ9q="_M' 4mR}a抉y ClhbJZPYWaN|J`-'|YR+giW|WfBF4jʃ(xAh)k9Nk4}FYsL܊0ҢQx㚲eKH+EPfQ c9 v;gV@5jY'2AܹwOඖ>*ثtwY5!8qy Z* }dFܽשOpڳԴQ%z?6y.eϏÑh?2ٵ*vlq[LlQDQRšNC " bRT6|Xk_dÂt9s-!LDBRinx w:N:NIC-WC&2("9t=U`D`EH)r P'Y[lGT+>B+@P \$ph1xZ\@D~zz!EW] 8=򮑆Q"MWNwei ͑*޸Ens>T;\BE1X#*7G)M'vݓM&;$GL.((i8lt".MuGf* ̤e!WGc 'W:<US"уhK&Tcܱ"0){hK@!2<K,̉d\T#B$ 3e#[h4eٕ&RkoiLԆ2P-Ե# c݈ !P8Ԋ`6z"x߀͟nrS]1ǍĚ*tY"be>"$.%L\[)@poRZZEy(̅Ha2Lay=h(~-,Jrs77NĿ'㦕Dp?\dM(zFlUR22(z"e{˲jG( 0h E;O$Rid[ɤ]W)h`x/QD.W]b22 RbC?z#9*d1$(Bh~{l3vɻK&U-uUb\QU n&_E\ΰpDxbl DFbp!@D Du hz葑\?Ttq2zH ՘ʖ@X8eFF^w&Ǝ$-:r!!R6#92*JMP悆?32Yө4Bsv  `iN2ɇapV$P6L]"zi! `:,ԟQ8 "$t SzTge&P[URunwd>4Hp l:CO y_}e*8P>5(HI.PHw)Jed7 (PBPw6Nx`)SU'ABH!#!Z'\ 7x*˖k#Q9n *BtdY&wpI.;'u#.*ZŘ>Dw9h+|V>}3dQgBHMJ$f$F(ZJXg J91biZolTX./6{S$o!ҐoNn{wbEm~ ~?(OSWAe3l~1t\oey04;4 1ȄBr)PP69SuhQJ C`5e1S7W7pמT?Joz&@5Ns}p= ס~iʊe 1R bG[QC;VVH(l6I|`!lf [[=(̪TQۍ8e ]Y8x}ֵ7ΫoEwruT<$Ѥ0ABLяxrF~zBAOeZ0?HGѵwx՚v DN}&RÝYl/hDW}4 lEnX8}c뗟$Mfq"! GE$;Q,Gٗ9Yfq/8rm%;6ܪؚUEQ+ך+Dr !ӍH.+Y(UՠZP}.Z9yw(0(.Y*#ew6aWZK$FhE,]d`z^KDqg<&33h0x2{HGb V$Z]E!(DVtP Xɗ^T>` '+Ida $R3tL6UL#/:^a/U|;:„5NV9Q4WFhIIR.d s Q:1}9mg9t-&3F2LܰnATR2? |WILq#/I 0 ܐf!=&! Y2- =Qez[mDK-ba{ Q |[ln8>I FRJ2{oݚ&AY0W !#4I<E bz+h^vg W0#E?iIlI=OZYiP, N>[_j~^v=wpU$iz$ICpE߿>%Zu@[Z a E ~o%jJiw;%z-fv^uUӁ@a^-WH*3^+>!7794զk;<*2 r0%nDL,ǙYTi^B-)GP! "Wh$v$ ޞ gU*k)yr[ CF[45AZ\sSXMOT_'[>ݲʂRiMRqG8`>WKCڷiIοD·?CjI^5At[Wo .~;V][qiSD!t Fd'#1S79D@;y!+_y;H+ hM(N`!iiJFhgmZ˞|n:۟H=v D`ϫ7KXļОd!Ka>[M<mr,()>1 ^u\;K^[V@0!tA1RwQa\!gAw1Zd9n33Ud;JeN!!b1UUfճB,[V^J+Hljg 22)R!tcPX#Qb)"L x!Eb] <~hNJ# }C"A)_}UN*WYm^~{mN.;L0bdn뫵JaCE9M_ ͚dڼ 2+lpwEJ.Wrӈa`?;b'b58PPl'mvdFYwHCs27JmmfrOY63ܳJAGG}U!1BZdR$î}t畓.c/(%V($K@L_0= D:H(Js w>~uN[%ܫ` wm&]G쏣ObM-I$B oۯv/9_n36\XE]wOe붍,8lu\Y6 *bNEj'kSF+3ρpYr`Td\lClhK{Nfh0*ٌUV IO}TFWcE]ͣkA+ym^Ei4[%Wc1&"& 1iO SEM+g3tqyP,Qdbr)E7ojX \ip2UϾ3]Q֎uƊ+YpNRA xc8)uDH$gԟ8|t}M"D8\n$W0Q{w Up*\M.ikFibHЅ78eDvuvRӁ2=J?N =m՘7YHi hRnT`0U rI'p(;#Aц+DMPl z5 D?Af"'4ڄiaR.8ٶ/~mSL'YMcOwU(BYb9E-ㅭygZ흼"ႆY`sf `P8_ F )S"xb { =s I߹ggŇVyK;Q1ࡆT^"쀺z.B]Eb8ægy|қqaLhC&T&=<`fQ=aeb$@@vPc_i (jA7 xU/W/g(e j;, ̲2[ѳf#tuǗo*qVx{ _} y[81@u;w,@.8hȶ\jID(lv1MrWZZv:0`\M(U, FW{FQ2q{c`阿EyQy\j ށ$*gF+>Nr53ug+,4ҫ bW}@zqPkhn#pοoo]JJ ²%|1 Xr"Q#E#lٖ| c- T^V@oh A(֏R??NjI]H\ ,m̒J "~b$pXQṃ e9\`ʯA'"$_S/7*7* ."b(0b|M&Ih;Z>}ɑ5hq֜,B1hdj)b/|<4N8NOUJ*f"j+1;HrmFb';$Ǵts)@PBop !JHnq g!Y(F ȼ3m3ˊO/bg %^2 ܧb7AO=P9<ń^h5ݕgªs\VAYEQ$..4 z1]ZV1~/3WiLҺV(f=u?h<,|\s @̏QWfd#Qꋒ""@(GN"va̯@ks< i! mVEezC71mU#†1@(PF`k|*!MiPEElj:y1jviသWq,Dai)1m o֩<gQoD9B19^^ss8gWzQDNfڕj#"X`g~d`;wD+7C4ҹ`*:t#b̈́$0! .h ZSݎ+:߇uQ0۪fԕ`vaIB 9^)%H@¶QJQDBLXXySIRVDπ)Uw7CܹB0x6(`nЯzUR87^Ѷ0FDQuf˔ J];IXx4wEGH4tlwK2 !WsiblWwW{зCE;hS ]I|շw38bE+u)A@1޺E@ $U8WTh/U|}[<΋:W@yF!Ƶ\Q6ďj mCI"eEf?l窛3WH\,emַ@!K4Ay||xlWD"$T3,]^@I ,Zu:`鄔D=6 )zQ^ gԀZ 6C>t|JR9w8Dz `m*;\jhY krgž8CHP揆NdYRS2jE4!V)cI$=清 ᾥUJ(א(gflROW5$D5Q!  ` yTBIbmq`(a7ȋ_Ŕ,qm<Ǐ>3gtYĠ  Aǵ阎(TnB=GfE,@Mp\xA66k\Zb@ y!(H@Pg QͿŴn~|<_ŇTS#Q.AJ1ߏFn[^qTa7 =+= Yy#zGhiuzvfOLv4ZJ˥Ԓ $;J>M# в4S8eL:z$Db&4#J<H>%FD P뵱ޝl}@{Ҟs}vG5ODBe->z_L'R|V5qNTݤq .1xj4OQ#rR*(ȃ Ȅ/z,^Q35ۊ2[(z#O|<#̱\B,]h 7:o8D ,A~մYJx fbIuS3.?f*f'HhJA Њ9Y/kAc#ȫϯkJ.kqI}J*#+=lUƃ|jY+B}ph:Qݯ wF#eIzݘO_РN(J4Amo>e[*%ٸ%} N1^F\HZ anY66`6T@́  e* hK:]ΛHb #" Zlo'YiHٙutvc0בOB;QZKK9h3_6ŦkfESq0;c e 0+J x2 !u@AH݉99)0b8*\ֱ!<|".3W}lO/ X";ҚLK=gzp y"%xS#A!OˋH®͍=gh/E6rdt-wɪSY&!&28r`Gң̕b~;G} i/p"DHs{6~8g+뗥SÆⷜheEp/%o-/!Y.ԡ k* k8pl*Ⱦ+N)} >fIS@UEq1KVOVk#Ƣ|1H]qAwS)L:Sg^`lŰ3ܹp bpIJt6f/c̍.⟞|"+2OCIjxy #ֳX6$zC(qKKEIJABlŅLe.vn$.;feXAQcL-}TA4P {b0GqHI^ O ԚeVA"1.l0&jWP 1aDJәD:̓.W5L [nӝkn0ٓĨZ3QBI";ĻGCzUA|5Z~oHS&oD+8͒h>xNp|!R)Ȟb0"TsZ??/C e>|z^< B:eC >_/u]#*QL 3E#4)` ~(e~Hc(AUY^3 }_t=o߯uai)DBfB_0%ןN!ק=zjBmd}4EUNY{ 9Hg+@#!Q[JV*@P~4pșWgkUY;A54 $.|]K?n;Us܌]vk5Uqί{U-oVVh|.Lɖx35V@ H0‚qb,':zlMaH4r \HeVTl-X+ŭ0ZLJlE-( DI!*Q Ӕ$e+g6⴦\3(JUV33Qex($XV1! L+{vНZp9G50UB-w78nO;.M5|#8TBp"J4tM;,$QƻgQkFk8xH []!;*dvwբisY²J*1gpΐ{˺a8fMt5Fh 5#wC )21 % `_XQ!eRp 8 `YE ͜9]TV0 k1-V`G~it` !TR"(c lQe#ħm0fw{i<\RPA3(}LyBBSəS@&hFq`1,A JZ1Dat#\v:–lò)UOi^-C7֐h[ U F >F2Mzk ZՁ// "C+T琕Vk2eu8FzRڧX1 Xd&Ϲt`HTqlH!͙0$E"l^Vcg!Os$jdD 7 D](dw J1 ՅL8dj"x:ĢGɳ=mÚCIۮ𼰲,Yիv~suvLcҥݣUkkp-Xa\6F.5WD9W _ča{V_!g59i:X S"$M8|N"y #:-1W L̈́5HPRAe6iO[(KQ܁>H "&̶@͊h"EAngFΟۮb2S3};>g6SKE1_7Q&sEI؈ 3DO1Ti0]m.>p1؜ӽGb1ahv-ُ@i,UZ.>:%0+$^gߣ j1XaE z8*&zph?4NRW64Bn:P~qt8rɐ^TviJO86OM117$Ti1?;qaqN a͸7*o"'* Ȋ 0eh(;ZiPdAv`3IVp D`.wa^d>jԭ˖m R4+肻%^?kl&fܶ!l 1=znw]?^Nu\I{泷:o-CbzJ2&jĘ$~M0pZ*A Co`Iןa`D*Ac B wva#c&eE RKl u(XVOz#x,? zZj)Ik?5URkufs5e8 2^4 Vhii} *QaתƱ0eфvK J\XVkufv֯>EDFxiB ̈́s"M,JQcTg/6qPZ~}-şn1{ԛd#V+u9CbNmB< ͥ20!I1 G >R~bޚKHw-2*sV5 @]cur|++`9OXxE!9H}mbRZ:Q !c i=QdpY6#@]Q&`}=tgI%W5td۶*-$<2N1}#VTj5m,V/{6ѪKrmoUbmQF`-TZ$b+&cFFD;@RІ8뚑iJ)PU)Z*ܭ*mV-Z*Ldط5Djj+b|@LBR:xPEqXs,i?@$գ` KBPU4PD BW[yDEO04o_<>q`kDB8w_sY lp\8LDRTYS?|29a!08d%A~5xg#5x~Q@?,t g]nT?.%s_6oIQ"_;L^{m@|R)1pt>-vm6Q+鋲QDObN# ÞaPjŒ\ڔ[NGznTj8IC,aA}_'ٹ_d<[8]?DG(Ӝ(I*X]ֲTa+cAs$mX4}nآ,[2j,64#Ie( ET[\[bjZ*[ޥQL-h n6m%Qm&ԃ]$? Ə$rP~@8L16x`DԔ D!}8!(aSM?_SQW&1ЫE H*C;c\u~)Ls~Pj @hdDퟩ[~AطFMKU:1֝RLJEV8vmn4 l!R{Z(Ym?"zϋ?RP~?n9q+6eeDOUY BQb@BGQO=>]ٲ0TJ4}RG7_vv6m_^>o6d1^M f zXv`2Y$P J U;7*\b+1A%}FV W묂J> 7W[lwK?FG-ڴ_{g_\9y _๳ ¿LB>ھyfp!J,H t Ցlq *rTOIIZ~R~)y>ϚA3By*%8}2$#n},a`HH ctQ"_O5W7<7X!E?$|9 o6*ʝT Hf(v< ?Pe$ i)@%GF:˥150p̾[_k\ V7@'ˁ`#?e S>{" a?ȉN AS?{Y(U 2>=[⎯lgp# Ɂ'6wAgoTIz nKCc0dVL?F'Ly&4*f4WjaQOj!ۧ1WJ_n *\2?umqArчDN9S]6Ӄ'"H";2ᓄ9ɭTn8u"NkׅMkvo huhKn1t6$V!G)2 Ļ_TF媣? M~sB{wwLOF NOW]l~g?3[~8Jd0 ?2^Do3EB#o `B _po1~;}mmes<=~ ,@1 Hji ˆa$VRFgumkJVэsnkޛWỴܵztrMVWD!HuC6f (CߝzP6,P^3XV!ya$" BȰ2–"Rٸ3L2si2k1I%ת0b؄kDIWvjdbtuinH[tۛRP@Q4u)U]!\͔[0()S:$L”ٚT6. NHVDEmXb9jm @2ce5(ɸJi\e%TazJi! b6j"&%YGʹZX@hqI(aaEF,AEy0(Qbe+6q,a XDdU IͲY4le$ҁ Hc(}nC@O1PrAT{@ ;~]Y"T%BZ)hSP1M*ȚUƶe#"hGݷŧ;m ~1s> A {# @1wI mPV{Xow[ދ̩ۖ?/_];!O3B".dP_ X(Z3 4d:T,ܲ?-b K%Iw9HWVǁdzC0xѾ"],?,D׫L=}<(&b?\ @iz{ݏMUzi %`e|=?l=^;LJwYd'P?\ڐPx6x}6ŀPw>]{_~‡ >OT K< s۷\!˻wTDLMt2zC 숼Q G1 O` "/0bQ魮tڹrFělcFJD iQ zw2PMF5VJ)Fhnbq #NٸQhCa UFG~Xqa i w.>iU;v9IȨJkKc4UBAniWsΤvfi9CG^pfWctYdm @̮hy﮴a'Wp$'p]z." v_P=i~<%#R 0|}ݼmAZ_a(/}͍h!s^p Sqy>NX0L;u>"5Oҿ*90aUw " Qd1bc?E傯јL]宅4 P <$iⳔ6^AKT HbUb ;oMlM"Tֽ0õ}^qKK(~l9ŜxfL60ugιUʹ!A0hxBY%ccŞGߩϏ@ ypyᷴByvuڽ{g= h*`f6QO/?i۸{|9T?Un]p~Tx`:"w+BDBQKI1{~z=b!_˜94vΥX ?*."2" #?~H#ͱG$8ai6{ |=DVrs{׀s4!Aq {a!s+"p]pzQ_j?}uuG'm]odǩ<3hUl:q!USIA4LŊlw|=:R ]^ޟ@P(8 ܁smI>:agmazun;4/7Ӣs 4|Hte| Odn*\_?EcXDk٫mb*/N*N) j*"D@3Je n] n!2wOi`FSGVΈAm=H>Ȫ_㼻Y4|6]ɢ t٧~~l3RB ؅r_qLftp91ĪXc'e d8g,?!YF5M$_PuF(`TZ+yǿ?t=Ӻ i3|>m>ç|9Ó9pTPg`]DlKڞ;L'uAYKOg}}5YCo!~~J 3سNQVI}*i@1RoJ[k=Fg(G`}ԣУ B6nO?| (Aϯ]]I 0EJcjui~m&! m DZ7;6v=L:ax웡[(PRvqm\dt/кɢJB N)ݗ%,$*gm]%eK!G߮ޕC aQA`0#QÆ@uPx}PR_ ?_e@pAx@2~va}$9I|E p|+R+28.t" =~]v`[!N7\CE,Jrpyv:^'$<hSH%WjS|3Ts(=\֫-ҡtnb7/ BPB׸*;T)+-;(R2ջ "(DT( 1 l2[=h9}`dYPt$ rub\zTZ#tzj 9bʪ+d=~PcH;?«39bU=$**UJBbceIwTa.tٱ'}tS+ڈg] "8臊́>^hTVu_lEP* %fX[bAHHb!t@7Vf<HoسRC-38u {D= 1m:RG85KN Ko!GQ/,@T9n-_g͐9玍}x=: p/ƝDim'EP:z q2R$gPIтVsVCj(|Ӗ'H92rHu\9I*I x(.fr9([=(K3zN'%L̑a^)dcWhޯ;˘nP,:7w'sYOJr56{A:D]D8MPSZ{뢕"090Ŕ0fGn/I`;@1ty8hP#Iq+|98-%COoDgkGӌ{8 CWf=J(9a|^iY~`)diwwwwwgWwwwwwww-:D:^pˎ}=/%{wCs[* , {Pb=DD&qwBrX}s<ғXDB@ɃLp)p'T1*'lE}A%tv Dq8##MWFL> t8I 0BtSk] %|)cJ\~?:N~'n)\B܆c!) VIlkhGi՝?o-r^ Pue5]we9# IJLIljp^*@%56 p̀ ٘R~i{L+&{I|ZD"C ynە[z"w%>4S ]ck)*E230;J"hT ݝp°u3"( QA\z e/+/eV|`J[BPloOU-)iHi y\qXEO^`_VA_DN !MKpܫ@X:?鞾 r~|C}=3X;1bx6D#،NXs6fsƱ>Qw׌LDAzG>D =O~ !5樂'yH[ )"W4 8TRi8:%'PB ~<øJ'n(5]+DP. ИS{a&@HCkF #(QbBegYwrZqC_R1$1ifaۈȇl:b_۷8@ K5  1"͟F..a]>6>OxI~TiQQDSBSc1iLq }zYa3}r>=i|9B zw5 Ҝ\eFcD4Lk]nqrgIv Aʀ&l2ia"g++¢ma! ĖQIkYK]A`ʪAk/_ &+i3w#PGJsN5)j3,6| HhyDv~Tqc:ː @\㣐\D0P|_ I~ix`,S,<->ơ ӋЩP%Z4\d R%S*VLH첍h*wyt% 7R$uT6;wj+:z`"^(c]hY,1VL^s~R;-j|ɐ^}f S͵ǻ=f~%?8K]nݎ8zqy - nS:LSbӲiLqB i\v/h*(;}Ë{قH+b(Hp[#^P8(WQ)F>^A:G忶c0_XG:{& W~D UB_U}EHHWg`|Ҳj@ǭӦ')ey(, RQ wdE+CW(V mH PT QYCnt+9 +X#)|S'q#S\{XHA%"B@]G.qy220C2}8UwqW4e2},VE"p]s}WSr,m'"3)"Yl3i\ɏNnSq=w 8V-kxF|c׹{. vW|(FSӂL= "#jY!"JJ1$lɄ{0aXK8orr+mo\CW?}K_O!0wqSGؠ"bhBKIKwҥ^XF6QAm3&q7kï1$FGQرKHFMEqXae4*Ș7#*Mw}dJJ˹򙚔sDĊ`R1XŎEn%; 3G|F$vuCgzE\b " ;yxT\vozg m+bA0!ŔG:q{ް5 l8YE[i'qfL5A(.n)P(D1Of}=FDi4Q},8 !5GR@tA M:cK9>B.ܫkZ&Kux)41fStkVx{ƶ+yoy'ǥ9>̱aռ^gD =$6\>NEA@KpfӝW1Mi5]/i.3v0d4bX>'b0# ʲkhr?alk,cm؁o?16|DJtb 0 ytN_4"I`";F;= _XoxtǪϯo{:|##a>0{7z1-zW}3"Ǭ=g0#m/LC:ޣPolj*"ia/u" #~Mg\b)0.>\>ώHNӧ zTp[B!Zaun="}HﯙĮ|sLHwru?H]Ƨ 8שt˯l/q nhFU 3V참bl@?87ҫ]ȆkADKT@ྛ Pj%j9zofbx)gPA 5`%[5 #n"Uު.lP,}Q$~TLv8LCqu Efp#qI;!ũN"iH/:<`8ijbPYBD 7w> (jܙ+y0oHjgBt*tQU:)]B\㓈 쾎Z C9jj;~|V}=0; uJ\ԿoC vsCz>" lS*PcXεCX} j ʖZ0z "bǹY3W9GOqqϱwZm|aPaqj"[к&T]lSrھ%5^R{mt퓄X];s_2n h30Xd5*nnnme.CNxl6A3p˺!Y$ fX$FI Uм( 1xv^>FE-8Y>+R7Mزhn>^G `e`^ʶrۏEdV,(á(?5,:e<] xitt卅(X@DkѠr6 Gc952+O믇:]P`Xθ@A9ăJ-O6C)WȢHn3-%w=q'hČ2šmA$`1a;u\F"ۂa6j8|QD2W4}o<8+Qy2\]q6|Dfm}>5dY#`g< 7/Lc=VEdrJ*HpZ}K$x,i<&H^zXl#M'dM9[/Uw 4[B0-F2=%9cW}>NJNdS(U"ǦW2)얋翇㙖Z/w޸26K7nk_bn]{ub 28@u&Lh46?q\yoZ4 ,5KRA׹rllÃJ[ qP  jHQ"ꧻݟg8]{'rObķO,\KkHv5M 6,Eg!6^cSL6E4C>]iA$@gggfm, ե|:2z i\pYS6rɌ26Kki/?Fde=띰TGn]FćKa1 c|&&jbV֢L[=^~gzk߷yn31$ fQq?0 d+jIvUUpVK>G ڰˣ P !2xfq +2+n K`ƜawA70 j^Z4۵r48t$'}>%wSAhGwî ş W1~].|vLR WxXoOF;~P^Þϧcc$^Qm%~ o 'vzZ"K/ HڒKj^^h|k \et/hy43znhĐq`Z-LˈiHBH(kѽ#=w;;{e|흲L$q^AIG"&*Ѷ9+oX4" K}Z([r_^HiyY]PxRd1DDX4Ce65'}L!J+C(ewi)GREGM 58:kHOtg>jkGY,odhϻ R8eçUW\v3l*+wgΔOƱrѷ0:q[:NdkԖ /ɔ1Q xsxIokʶ偐 T0h+Q D*IE)^P( ] ,,g3nٞV|1J /6>L}2־0nK>Hón$(p 1װo8(-odfX,A`UrQcU+})yn2S5G2eLAYU֮zjѮܤ V%ݕ'u!$H,dW紽?w?}1)|uuuZ6lbByn= VDwIgenGtjim[g<@K_oFוi4{ :vU4|%n20 |`]vpW3ONCb@nwgb5D&5v@ר8ZͱFe)3X/nItLHI4 l6p$s®J6u]e50H_;N̳gknCOghuB.hs(jiq-`^qV?-~;xw_ï5K"4Q I8/M珶@\7o@)># qpsذޭf5q>TZ'lz7-_( |0gY}GΎ:ɞqIϟ=U}<_=ørQ(G/gm>ǩ_z>Ӿ8˥²r19ͧd>XpċL{ <)8֝)%Zz+4o7xtOdu}ԣwapkU^/,M(/+֝ӖקGc]|;'w9bcHW(C^>uno+ӼI&u< `E QϢ/KxO{qӭ _hh,&~{!qmu\9<ʥ4jwmǼu+FSbK7պ *Ԇû18xǯg;CPw+g39о8W-U.;: Zs;C@t)<HΘJ# .Vj4$e߹b5:u,tc/EN ~i!.u⣺XL=ivTF_n;9,@Kl(K+C_2 xu陛Xq7(`}%o=(g|"TѵׅbZB4ư;=m מnAlK~qy;cj<#G!b¶~QOk-Moծʹ 9z[ze[|daTz=\@!<7ӥ0^j._%Wq=0Κp4ܧmYco<1լ(ڼx,\ޢ? I ,1Y\Bfƽ5}=$;p:RRoMZ@;2l^x.yI2wt uc:t].al[m4"4;W*uUd=:i6L^#Zо;Ԅzd`)=6=ݶl9l!-3ӽZu~Aw, F]tb'Y,@;JPePC P!7|߀O D_\% &|%&a1;lX>H҄b`}CMc' ŔХ/ChMSh%ه2A`0R,٨PT$5\ bC$Di-]2mƍth(6 so.楄X5ɨ0DڍX ʸA)"7vʅFTTef-0$D!()!f'q !e bѳ,BLJHTF2Qsu*)c4Q((J%I)I04̳d% QFlL!fMMG5p k$i-I$RRY(Klf 0R+Fږ,SH)iZT&P"d_1[ I5ڻ*-1&-:+65Xj+ZM3j`&J0U FxHM&`,S[fmF1ŤV1Tmje`jSF5o\SI*(҃4`j,kAcVkm m @9"i$~pQ$/V{LŐ%pQ!]0$*PL-KK1_ӶB?꜅7 hI(rT2Q+@&Ѳd,eg7i$latܫwkQe-I։(`db&N7XJo1 J>;vk]5]5EcFq&<|I&( //?Z\7?N ̢ re}?r"XZk{ :79$Iub&JWH`((*P2_.䉰Hb@FV!ዔZcޱr\k{op*( {{[$CK@U"BJ _ϢX8>ϚKDf<B 3+DPO(.@@pEc@?}n 44vφMYoo%紀A/WmN+Q8{BӠGʘGd4PtCgt$Z73h 0# fNmdk Nlb3N:W@&F6 $XCzdNn2Ν٣b~a)Af,P\F_لl/1kUpɅ}cߝUmTDN9ѥr!!,a7RH͔F3؊O@@<Ҧ#!h5Rcƌ<>נ{+lJx/&h 8bW[|@_r(CAU`t0"(U`6I Myx' j(7}l_7)f0:)gycue^[!Xg0hzSg6nb] viTs qo[ &+1*q,1DM!q>3epHܖQ`qx&P[i4" x .@pD"H9!`ASMo, A2 UP̅aZ5@f1eNA'VͱlFI[lp/.S?A 0ƹ1Ilt"o ;e"P(DLJ"臧_OL7/P =emA߳ze((c (f1ڝqݘޘ鐝٢4ߜ/S˧$ \%PGo_nu4~^ٽ{}ʄ~އazLLӵAf wAЃ@4+ 7x v^;*wmkt ۵JB$=S_ 8VUD\".:B/ C(> T)sct1٬FG'mPv3aeSZE6caI޾v= ٺݵ͢%+C8UpnFujY ;tCwBT?oq>rE3="w#$B8&ӥ1DAbE&mDᎃ*f >O}1A%j" =2G(;99AG}÷z=jR7H_{nk} ngu`x@u7`̈PnF#t6O iBҬ&>`j*T}#>!|5 kq̭WB˗r }#Tܻ¸љu ͒uS,N ^duC*|Ŕ-yX'_S64wO }Gbf(C,@뎸2hB8{FԘT"j.HP ֻUG>a 5(m<.F<~;&\'6AͬeD蒶!:qi+N noq\Tnja' |b^P@@18cաZOHg1,TNaWDzPíÕaQN z:F@U\YS^.5nE&+H%E"$v#kx+՗,W鰒dEǓŤIk(Tf>}/>(j==˯fE'~dzyXyom9VGxCΗo3XD#8ү |.RY[^@Ȼ*V˛ XpYA{b7[*:ю]"keh\h#^sg*_G3BC$d&JV9k$ɝBv,MY~B瞓,X is9fbdE0@0X&,A@c )AJ`Sa,*U&>_ F}߉묎~h]{5#\81*:Do @9^BMg \ &E$QNѸo**i^,AsWW>Zpύ 7'pɊ" e(!6T =0ƄxW|r>\Y3!S㾳u,{/tFD~qz퐬>2.>O=Ӽ{~_6u$1 ?"cid+|_+e 8'V0ougSlsXkeH;GFv|a 8CJfSi<;)/Aձ`uE2PiDP"-tJq8Ġ"j%s`h{L_-e"Aq*Rsu5ͽꨨ&J3/ds ^dˉU&H=?^IIhJeAMD&,hsDe%)0OFwWF ۆZDayQd("U^hC *l9(}ƗNJ(V){ye*QM~,+|kQ'|" UG⡑YS=$zh ݇CDx-=+Xxq]/*b+S$<|{f``s˼F;'SB ;GdHdmc=- 8 O _]``vl`!gBK>4rZX;-h8# gȩ)| HzB.sḌ5ȥ xt"F7Y\o9Yut]h9uۅHA/\b۪H! z"8F㱚GkNNJ(:02.#f ӫ$j 8lt^: C$8@C H E+΢h'V,&0 @Gr-ֳ][Ck]: Z?4tጇb ؑ\w GXx ?m΋.lt)6@ u)q;Dᦂdt4.3llGsF+*>BPtm q ,AڬWYDw`;`q!{`e8-neXuhSks9}P/qu,u7j<9)v:y&. e[WAGTC[uYS}@EE/ER*Sw,7)}2)1h:f)E0!b%p@Ei:*^M1X?Nr0%Hq-e i4-q$@_*$0S6hOՕ}{oH`e @$)1,=lCz-zLHu3PiIBlAؼSY$"iSlmK1=pχ|;8ao|s߾!D^18~ cį`鄁`k Ƙ׷g4`d2@Exy!U!@5Bvހ%gauwEFj yt RE^.II 6* +RUC2WSqOt)25)2B>> OtF}vǔA_a0R b@ҠfƵ~ : z@BReV w@?kG !=OC 6qD6Y{y>ԇv X}$nWs3}AWKi;r< Þ+д$;=Jg<|Gmw{QəH$RByzv@;s_rs6Y!(d!*xoU¨a!t!)=}b}5\Yunh,Rv el'bnx5"=4z 㿫=l< en h-w,>H=5Gq| (;P1C⪫-HD455ya:z}|oSt_W̞-m@ $1Բ#p`#-I(D%bӋ8xDBw$F c=D Ns﫞1gD9E>M,A Q(eb1ˀYoy0|Smfb.qJ)jIͷY꜍5c=y\ȍ0;kLbnTRET@.<ۡgVp# cg0RPFV/K="WE a,U|3IswYzcd^ ʡF" p#aBEW012B*l==׭ }^wT-_Pz=ç|V'k"!h2bjc-{Hi->Li(:1텐Xpze64&s>"|b'2gu֞Z_d9 ޴UHUZ D$}*.ۆ Yd;UqѺP4TJ0C϶KSΉ1S6>1K1J30<{K=Ub>+aƾ9o%Vn>pl\VfP8pjJ,}٣xn{7`pVG.Aso}`b:r[Q ј՚zRT|Ϝ-!Ez? ± ^DCqR!ȚDiC#Igk5Ji TESkyrCs[C$df"ݵ]! tq[CH%VϐM(6=}>1,B,؈jwKёt!eɠD=xniG<M <{nnmLF/hI{'Pxn9zvh:vM"F mr/d}]ff4H (Zu 9U<h.>>{i}a4xH񚧓"ޞp7.)!}pqT9C(aV>d`0}4׮*xs:"7“ NPbpMWX^;ډ'k:ɲu_*u(Q.^(v!âe(x)9g3#:DB)߯;^Oc ]Ocr{>FyC6neا-TcvGw1y0ϟA%ǑLu]tָ4;[H{v]ޔ57ϨN?}s}N?M ɟ)ZdJ0`d$bMBkИdZ+9cbp/J jb d=z(3,[Sx'&KRƀu>\Do辵2d]#s="V/Ƌ%H[tj,WZU|fĖ*@-zbVH,(wŪ$hG5 q4rz`= ia VX࿊ӑz$wz`ք`}Sa" ʵV+W$.,z)ވi~;vn|o]*.EWL vOܳ,Hu127*_ꍚDXsx[e1Y};#X, u偔OS>~<"1{hܴkN/gWʜ)fYMlLGGQ}c٦gCB(?tr^ ~];`S*?ӮN S@n B?}S}]/"/z}ڝ?a!sw$\8X bWԸ=aS="*IIIp&q1N&~"TLZ_$K&ehGN NQA %;(EcGDBTkDрI@0#ӌ"PsV(ਪPL{=R~d:6@?"9SPΝhd]C;;~ixvgqq+}SՀ>(]*HTv3ĚRG<)Ln%!cG1bCVXf՜(˦]F(2.rwLV7)#\{ V!V3xJkW.-u|\;Ñ{;OolQkG{bw4![Zémq*-jtCf\ h7Cn*ro]̜{övҖ<M&J 8-8L6$fF2ƒ\B++gY4& H\-EyR_7#j-3z;#dhPXČѼc3\.($ F)Pe0Ļҿf=91\zp8֪ǺHK;kBE& kB!P͙յ$TNS8p"Q:ЊGx1'-34ޗ:Sm nʐ*[K)kkok;NOKHtYx hb%rܨٕ!0!i9{B5QQ8FPh9 ފgu#d ԂX,a@ҐMҤ=qßyl!鸾[.;]aП ][JVo:g~:Sy7^ZV*1;m&ቹ'rxhὝвdwcߺdZR97fjL# @ن{$w Wb{}ꏱˠ\~xP쇼{4=n>N)鹜7M{*ZB1wX#9INSKꄲ}< _ٞ!CQEkq~L  ^@7>t Ú%=Ƅsa2-y" a*#D^ҫA)P~0֞GLٯ4>Pdxl߱d/*kJ4{8feStziZmh[rȯFkx^-&IKskm]6-Lu&jWxMLUNbd c ,܌cۂZ[%=^/ze.UV鬢 P F V fJ (CA0@< P^cNtN:(=^@GˡW??^툇O0 oч|rj J#Dܐ8@8 ԿZyC@{p'jiN2\@=KkȺ (PDRDb'8eP:qM.)! lFŐ@}ݠy g:<pûpû;w{%˲]rݒ컻?WD8I #jP1Ka* $^:wAd@[ ?O'~pm/#=wOzrˎa "*E,b,U\|7/N0~GbF$[c}[)] ؛} N¸ eTE->:W0EDJ"Q dAn7y 'HB=nv\=(}9pJP;@۰` = 36"'~O%u !Jj{'?\KVCtt#KN ND:};pRF S00SMUO^!BzP<Z"%:ah*bbWd:{|A''e 'O^BG(4: o緫@ARX)߄i~OR;C6xtYѻz;gJՌzCg;ߓJRۋ<=x퟈ŠUG Q)'^IKǷ($H O( @ @!0x 'v*pߵmp SAVP;),yļ5^4]x[9AGSj8V"2xf^^-~4JA]6a! M4$QGXe`z xhUkZ'iZ@U@v4<~>Fw/0;"&"fffD$HBBHotCGv?O'~vUčCy_?+<5k{0 DpK'@%!-֚<#)62w1@<œ-)*H!@$ā$a\*xF1n`ž?@Ʀ2#`˪!gF]9{d<U=P_V8DQD} b YO %L^.\:NIAeI_oM*->Hh2d1M J6&𔫶re}wmdϼ?tzei%P^.yПwyyzx[lr t?_n(Д =\^Fs'6-w 3)EUV518ծω"2#*XR!F` &[| vLt#UK4C`zn4NhfXz{艩OQ_Cۆz }2M@o~Aڄ$AD/n/|BG|1[Xێ3]1_I Hاp#x7GU4}H?O<z2[s F PPk@ٳօ} ey1ߠ__/?2>T UD(UUnKq.PmXh+ 09kYmAE|:,hR><Nж~z>vѽ`-;pdN{dD|5.$1 Rժ 9pR `?ew+\ 8@|U(+ز O@ću*(|>qK!fQQ爗F:2LE3L)1}q)G@C n(&~[ \t޸Z KpJ7AzEp;S +{p<_u'? @@LȟPq(@f ,/wλ^SWl! u>c[ ;*b:K}`Њ =`bl,Kl9=GZq<`Z%/l7rl"g{qRb敬  #T P`7[:Oi<=ی!5O7mUw>a;uYhp`IdqbHM?no~vCàG|L#3rkqƻ'OIs;93|관 -HMvg[^Nѩ2 Y*6%câhC)Obˎ[{jW IgyW@>T\ZZ==ԘlUTf,Ē+9v⪡OJ"#L(apV t?"@}*!>?dxAbȇ@RۧtBv|֮i<}r";_6񾷯B]xI(H|::uYXׂbFF(  bPqV,N@{L#HE! e*>޵UTU("J=y_Yaϙу Bʇ!M B>׿^d9V~?TUUY>?-f*Q6(DDGo&<3NZ}Z\~#ZǢ%hwq2EX Z,nU@;{9u1TfGAyӟV^Gˑav0״%0)C7Vg^\ Sz'nDKGԼoO/RmHixI-M?ĉ^5,f+ҫvuQ};HzxtG p}M\gϯw!:/odJ ; cI(}&dE񤦠J_bU&PڡXĄN?I($GJGn $GPEcwD oh 50I[# Wu*/uDNh!4'*6pAUVqB?¬q+2UqÒCwEGC5MM{afȝDI)l凪U (Ѥȟm6|y;;a/êkCwa =Ea ;~ו:^p}@C/%C՛jtP0!͜LkӚ윽B(BCp=7+O6aΆw2ʊm= N"0^Ouc%lwcF^N)vs7$̩@gQc6U |Y ?_ѱcǏRUd<% J32)$#"Ψ5!I  32:w |hIoPuE%@RN" s6n21%z> 6a) j)ID ?ϗ֋@C!"yi>wyTA 62'+tA~cᆩ a@C\&4LO:lӯ>rHl_KkG_,$+D6U"D 01QIՠPޯIq\Gް'PA(ҕ3j2|c T@#)2tY#Ap5"XfG7 ׮ Y]&ب"Hv0rU /;׏9yÞ =2i'1(B6!M>Ԕ݅cHkNg&&WQ{c*I uja1N=Q\;#.B'A +* ׂM#"5o3eT[EōdH֝=7p:(sOhpţrkI:&F$H\![R07)6Unמ_T8S&Fjc'lCEw|>s(ȾTH[/e ɧR6ΥjIfmʊO)RE`mFy 획躷v)x01DL9BDm) ̢"NYDŽ-ndnjMɢDi0Ji˗iTR3=^`qՂ @nPm# U.4o:Oj&~N$_ۿgO )JRJR)ZֵkN)JRT)JRB@W.FDӔ>0"%Hy5N9qW!]'Ϊ<;n )̀ kE7pY>es)d05mP^P@)OƠn9&?9e*ֳ)~+0K,`d6"; ~R'G/Ff/Ӵ4~eY|ɋ5>FA! ,=wA7q6V uʼr(M8 Q"G\D%zvtaҽFGM- -yQ6tU*Gϐ)h/>o>sren0l 5GVÎAeyc(=nNO{p.[5XZf6 \֬v!ȑܹ(Ө^JnX;a9u<ԁ3nxㄌZ㰸rY1XWF]QЊm i^k//+߂ٟ _Lb\L9g!)lƗaW|C5FߎXg[ uSј.=P U I5 Z `lXƧ;-ƻ!% +1V;QԬ}d'_,&=>PTK). J6 ]kXY. gv`)W3PJ#g~wya6bOh8/̇#3,jÇs!3c lٞr֋2EsAl1(1Wr8(;Yʗ _GPx|TBE)铹"wK魮e%X-/=dG,0 2k4$fk# 86QaYx:V cH/KX1)KDX'PFeIP{QE7QQ\_L7*v 6#Ob6\yumJ@3wOtMp)fxG#Brn2['8uYAev,njˆ4Zie9T^MQW1yGm2zf2k/8 c"lY,peı*q`h l4+>Kw\x)C,{1q%hFmw ̥TSԝ~P"75qWx,ԱE /FBL6+Oԑvoi/84 cҽʸU n~`g( tnU iHByUʚ:/ α΋2xq裸quYW-ϳEq= 62Q5) yS2u&x]m;jf#dz[E~ߖމf%@,ʳQֲuQSiF.",w7q qr M>1A7a΂TP7G=8Zs:)& 1Av2_eb+ 6z3m m? ̇gdVVvF7I(gPD)w QO*rgFx.3RۛgDPd!v>)t4;-ѷ ([<\D_]%)(a붽YE\g?{Zf>U̍'qU;;]k@+7erZ4LEQͩH%NZjZ;OƦȹzNV6F6zx4a\ZuviIRմR?_SF[>.L.쨗UB-1;Ε#ͽ;wu05j*LcG8F*JJH?+HCbڨ١[,r7Ś֕+FWuGoq=1[ͩXzmZ~%Q Ϲj1.ڊW>Lxnb0_vMU-&+ץ_.vkWj*F/OzēǢ]V);(= \&vj]Jc~_v_ښV9Ӟ,WdKrK/N$8C3eejʾ+BhoKkZxxI&p pߟ]GHδ9A^OᜫjcX s-t㍏⼺D:J\J\Ic`?)c~pW0]U@S=Cʅoi=CIt\^_oC`BG#v%k HHܼeK<}(Bz1DXdX $@;N")B'/`/@*?n5㱗uŷ]9usBielR(4Kh6Ijb'x_]@9qApBdÄw]ݱFԔͨ[ (FdH)&n$Hlsո.U[df"`2 -e-Qb-xůSUcjJԩQ-bh$5 jR"Z+[3,*e "W1,\ P"q0U@P9@1 +8t0&@\jȵ F6mlz)6" Pk%lk5u.iLlq(0Ո 0 ]I7dp+څ1! *`"C,Fݸ7p&̪LHS$ij3hmn囸UBWJ (&EVP(>9vufPJKB0@dģ@)pRed,pL( %(BeLf rҤ&2eD 8ȆƋGZZTxPR B`aAP'P>Zb5$/P#"43e'#>SnEOwӟX};@"DAND{h7|{X2~OU:>pAVLPbA`]qۜJsl! J,_7Ä~my}!gs~="k~sS6;jQRkv,*ױ;i0ݭBAIm >a{׸Iܜ JhHā{:Cw"HH4]O/DJ<%YTd4vesj1 pw%%  wjU 3hUP@PL'7)!ЂJa͐Otp|w;s_:OzH=vyeI=N 7_R&% @?G@Ctj00ta/IHof$:n ~rI]>[4N`n{*4$noF6 x!`..C OLJAS]yl0Ib}\"HJ-of0N@YX1l_xl򦉱f7k~#]?@"Dì=L9B8@74<2 'ûrB7A5*,M/GEݥ30J4@:|O d%\! =NY]'!=Ϫ5zE|9.;4<1;C{s_165abR&HJ쟀w Zʆ<I)`)@wszwB<ܻא`5w>w.7][ҵ@T:d;+HxuC dpi4Ƀ9|GJ~x@86}㍿#ΜxL;ǹp;!@6%@=tߑuj4TʭܮݫZ7]<4Ȋ$: Ib8(%-`2Sy vM@D|=SwGPd9l6ar3ev<< E`t1wt]$IMw|]QW:02 }*4RI91HHh88;ɝa0(f[_s/JD 9A:,˷f??߯wwrqdln;F[E7`fx8G|?;wg# @!8~Z4hvﷸv!z~7HF>zvDMJrלhMTLq\i6?}Oy]HL+@6% b<;bCFm a^3(\8$9qtHj"|g¥c0a=q!8CK:}|`TF~ZCp'} |K`?ܺD?>+>ΚN.#?#wd8uS6itpO  d "!I4iz,h{߉r]pWI3tx'xғnrNFI;"Ձe&&d.lh x<7MB6|c+b ކ Oځ=0²HVZ/]n|7>]O5$24D44Ͱhy1uҶlH \ؾ'7z]:@(1^'՚Άi𾱿Ź}v&'ty c׌pa܇L񷃉0׽zZÄRU 44eJ_g۹=x&2#04{:q`':p:8 vv)N ր9,J$Fg[*S/@|QϠ NW^=FpN塞N\@!E=UhLʪ +z7?;2A9N'vH ^sG ::Sa3pyCOo{fgGa;.\c8+FK{]~_;!22Zpkܬ@!=0юpƈ 9L_`;<|>&]&#`3wIvJ#{#{^KzOd8$Gr;ʏmǟa  NwB @ |2QC8s&w?ݔRܕ) 9o*:EMfDᚅn9Y~~]5 }sp`;;A9za!!M%n]7\mf+&&:/g^igu\1#Դj)*bTh"Q!BL*W[`5d H C#PB@/zGM0oş=$Oܒ}~V^):a+寓:uq2U!☱2Óʒж&)8wr '/c"{՛*n$bGBxlx% D̼(nXW-9!XACUTTF:]{Ԟ2Th_܇3|?x/~EJ$fkXm&Pu@>sw皬wԬ5*b |scBO|10̜{CpMY - ʔK˾L e [ϸ]2D 8ɡzAAR}C7Jǟy?Sn~kr(8}[&W]{?^6oO2Q@a$DDU|a{+?}7O\SE )̸:v #.pǵ;S9FNkhtO/C7kd> Ȉg44x'Qթ_p'Bn=c9~Kt88 j )6㺛kh!UvvA|^t)̎]/tYM r?_%jM W8wa=#7@,}gc;쿤 749E0~}U_Mj<|EfGy˽ضϟ+j֪!ڋ')([C>Cr,˘uK!eBHh0?01 !&^ Qk J *ZKB7,zOFoS8i2BXHhH4P#=r%7^>G|p'泄 >#C=d@ga9j7G{FK,'4:߬ Q4QA6'3Syuu__L&tM0V{N6s؟RFE!5P}:>2)u `'")d3`Anb.wr} 7|W058'I;zam}v6Lp_' lc$lHK`c]!)\d N;ѸH|,B'O?~"\^Z"Jf&h~ڳWibt>y|Nf=afDnow`l g(mi;soGsy䫸=҉{R;ZP8$2Hy}JqÐtwtٗ{wuP`aK9n>1g>j}_%4:&tqvl"`{wMvv"v'zw _/cmx=FN|GTwttۏg!3<lHA_N[mjyyV@|o /<u?*5X&ZB(j9H2%^{ ˼X\A"QB &Bi9vW!Z mna&\kd"vu#f{ލ.0W]/D) ;3|m'>:Đ{HSDzm/{5o1l6Ii/6@z""w x9w$!+K7u;pgM p  zL1*G JvǬoϾD7Y|`W|<|(ҟɼ&|ܚB&G>wb Nݾ̊Pg, |p[lK|[!ת|O3dX{k֬ 2 | *p3'oO3؆W0L{;  u=O6r!@){{n:]!]| a>cG!PLM'>kϸIuSqn`[4o(M !_^W4nY6N0mt=:-ݕ/9lAlϻ 'uMი"n'H=94L0<$0x}7TL0>YA},nZTa?| P"rg:ke.{/̖3):vٝEpBdHPP8umK4`%ꊮG%/3;Kٝ~99ԋdj'}+JY]>GUҬk]-yUヵи]>Id*X*(7 AcQ".$U@@薲@(u&}00Hq|み70`9CN!^VQ/C-İFwt S}ɲm}~eh;D y7pØ}\q^bh^‹QmyDGx˖cc8iC_ G'Йs JIt%Oq? 4FsF{\vUJ-B@}O NǏQDЧ v"s@| E<:螦ahs\a9zvM`|(u=&$7ߖA9tĴ澻>`Dľr<2ZnX '`TK8@.[38drL|4 x`a< 7# l:,=tV5}S0rJNO)V "C p[<3TWqC"C}ɲ%;;GQu3EOAXx):lN (w{\MK4oKj%JPPhڴA4lhUikmDM~̶>i50S}̝f!Dv~zTR?C!>*B҄ӌB(,Y:(T $0+24e-G Dp>F` ZZB* TC OӶ )l)=Z i:ɣ Bko#|>fX#y_!#'o{}\'Lom88}<0NC}HCpw+vE2@0L9!{o<lC(O~Qo?ôt?+%Ce.OF3~wQ Z҃%Dt> wy9ebVȢKy<SK#0bZ̨B?6 <+=?mm?}*-ٍK?A!嵚2Ʊ}6v)֭:[7|`'GݷݽHB' _KJxuYNY1Z:i2JKq@^XZeIw|%'*hn3mT LdFD=P* 2F(`DEU*X4:kJs'׶A02m{f_O]s^|*H{vQgPHJT0<څ|U~*9Ahdnceg$X鱣21X<'c%еL?>}aGV5^ 㡗uͪCG2ُ:zbT.Z8u!sa>ܓUӃ];.R[Nı;~\JMy Ts s3*e$U.UgSXA(-2 &n%-E8۶k%Bݮ?FXdžXJԃ۵YQb;^ F\!PlW.TͮK*VЎBNʍZ{-?S݄c̓ 2TQ'g-td)Rf KsŻ|W lgkg 9hd"% }uL:6`3IL8$):HSgPmiK Bm˙;DzvLm5e3)(h/OsOޒ KF9V_$9jIh۞1?`??&(yF;W@<ߏR{A*5cKG>^>aE룘Y`# }Ttg_~(}Ơ h2vO֟˱CƿӿC/WwJzYCFXVз,w OZbawbqcﲒ0F8$c1S sl5{pXR;Vv-E}ύJ)UԴr5Y{ÕZpo~ίqObo~Q!CZ]]6461=^~RJR#JNsR)IRJR#JNsYBE%򹋸Ʉco@ pfEq >/5,U>F mk{=8~W $?χ~{g?;<:9 *NG@1@׾ۀZ'j1ywUF Xu]!I&2F.?zZ09m?'J G{xf]!QU@% ۗ2hx]{L><qޑ>^Gll;U\9 hT$n3V{Q~ilL^@`4Nd5f_XqAp~WhH^uHŒ8$, ƣkf*pedA^fܫtwh'k\ +*>'=8ko}ˆ|~3~Ky]?G +3mI$3Q-ϾJS%N< % I@D~&âj%I%3|kφu:^, 8J<L7IUH_r(s88z TP:ss籇"&$g{h`ӠNEczw9.^y^wQA> =+@称t;==>!&SI ft"R!€:80Y=D>_s 'ùYpp^yk#f] ++\ogsdK:b<:"*t{>#BpCuVw 8KCKQ"W!dـʼGUƴx2=k0!$s-5x}I"rIJyh0qérrC~F*< N{{ܹ!yґE`ARс߃SwZzw<.G>Gdv9p7> z{佲'G!穴ښ{xKhH3W@=;Ö{ޟ 9]t> hSq8Ԫ$Ӱt'zkG90"f4kɩ 0y &vkmMΐ9pג' %!MZ d4y**D n !:k zLQ;۰ȓ6C!<✊ $b;cO84]U3]a@:'}޳2I懒tؐ+'.Aޚ0s=me7Q/ w>7M]OzGp@9OL=>(IGx>>/-ǧ;߫@/l8ԟ@Dp?/AaT xLq GmAnϦ(vm で [  RpT"}Y(8`.bDgJ_r5ˋTCyiܶOfm}_՟="?(|uOȀ lTȘEZP5 h eiid 󾜲1h~t϶|HC($+:떵~txU~_ Ьj_YDn~z|\ן%xC8POliDgsܶk턽tĎFg^byшԢ> (ODztiֵ!-u+}vA/Qm#RX0.Iա(I/g0ax>4M'Ҝm؍ȅ{zZ6b{IecoOm )I w 3ԏJ!!'Kr^_a`t;#<Ğד|ýܚ22rZH &:>(: 7ꟼ6N<34LJ016</rREޖK<6#U]yҪnR_V]} j81_}|86 {a/˩0cP'%pDW@;%P [˒wwǗy Sv {3rfr>\OEhG¾J 9T Nn: uFɰ[8r!\,;Z^VS/V#F*|tCD!6LL g<<6;,*f&pca0\MNYk?iRXy(hخQ|󘝓(fBx=7ny&,\la@v{)u=Ns2h6Lu;Ç | )}wvC2RĿ *sKnQ16̣ ɂ*`5L x576K1ehyR xTUmi(ۻk 72b 'pI=p*ty XH\- x׾8^0#ctBdX3v?̪1F&~FMmQ\mLΒMg'>-~>!3oؑY)a ªF`ao TSf [UtQ3; j1B9RlPkT mJN;16lxyOK^{P{qoUv+R@0JzVN(]8oÅG柠y?%uF'5&_S2*'#,;|! sl_K}ߞC~M7S1oJ!&}.oD>w1\M!>+z2ځVD^~_z|q讻h+Q8.o+ĄBƾFim6bQ0&ؗu;`&Y‡Ky{^r+1$*wIM٥%j{VÅКÕ4/*ȱt0 |'nRrCѦPm#8K=ޝ0ぷWأ/\{ $ x4lBO^I_ uOyDw3 `$NpQ6pR9 }V*ȳґa \$)_id+|Sn f#Qˣ س<=8Ow#8w#'ȉ( |t›ryAyЧ#{sP| |k{B`8DvC26~=O%!/C#r0Fxs i o{%68%8; 5BgNϥGXzZOIN |6_"f*LMeA+䏙fU_TUQ{}kSCz9n#W;SL,3shQXU@(Ow|녧K ;imVJMQ%5lhhFq˂ r=ˊ,0:_yYi-ciHYԉ Ø8Z%@sl5P5Q& kY0(r7`1dE 43V Ab#Pk kP*GM\`T8BD5&9Y2(LYlb& S-vxdR`$+&hCbD0S+{h1j;I(lbNVԊ4DJhy;؆덢~LH͗i$Jl4ru\Uio# ;vBir=M0oխ()'%5%&!ȣ`S`>G 9UQF<MV8nH0=]dζ[`%IAZ3³Zmj]QIPMAP LmQ ?,x$PvvC~s:9X0i{*Fn978c:Cx(r qXzwNɏ;fj-3jX:4?1-^<ZF<:ސR$)ehݐó] N8b8v{&{ӎ<_,D I(A%Fi;tͨBt $b*e5I5bf8J`HWUT%—<׊>~ 6c ՘T\u5SkfΨnSj%uYJ?Im/7dZx FnOZ"ǹ%s}SÐ{S@CwB#]5`{ X74A鮃pb#xJ -臊nw{W+zeu6: uK؉:+3~+TUT/0z_+~|9'z>ϼU>P9 ~&OhDkNLY~__iT*vD3./,L\;vDSh<=UʥN@c|u㽕XjU}g6`z4xwwX[BCyplCt69ɸ.{y:8\8ׁCC(h6V*9xh`(,%SRl)D5F 4%@1Lr8:w?(CZֵy2^H* QPhz*q bO V IܱG4ğ\fCRqTvUH 6?k2'[SBm6"/-(3|>Tt~P`y:6ya7:3gBkCppjy=>GAdoCא7-󰧐o33a3ªDVXxow)^mOz!%a3}g$jm*^p JTUj*T NzQGr Spd"R:%!SYZ3$T1 ڳdu"tQTz6zp^,ש Xo-+wg dt)=÷ oZJKV- P j@Ԧ/)]GQ!c,٢gTRɼ'SVbYWAnZn>7&Dr7IT68oN\Ȱ !uOdӅP:ŒE#E ERR 9MyMI+ *12JZ.;_D֥4|_sΈ+nv˺P,ĴřB'\&sOvnRsh0qa+u ݲC Aq\*Y+GʼnY=Gȏ$!׹Ar8E}>oՆ bEA] J8r@=]kTt=hc˲.qfavPvGsHu)Ì8Y@DFɒ"zԎ¦bgyr{ƽ&8:Q@H`Fdt=|72~.vq)d6 FaexOk$;)*KgKWdڷVN\*'Z0Oݮ]gzϜ=ENbȋr9GrExM/cs 4'fsW,* )<'xΪUUUUU\烳U^7%0 cyG.q'btw`1\@0i qܝG@qo6-,vCNPͺ˻nT9 6VYk6祝" $?-nJ{ӟ'ddʩ8=3:p<+8^>X{Ĉh;2 RNݍM_o޵UUUrNt:cлށ*g8*K 0"!EUm[ng-.Һ&; `x }qyG@dQCHP6A_qqN{ޠ'ct566W ՊYu,d(+q%.UY 0wS{fơHU@V 37Y@qejHI$*-tVc]57o,zV qznE@G`@&B,RҕP܎!I&_,2ef\=PlPxua)8e""2" #I}<2HnUE@Ii]Ԟ$M=CV%~ hvuRM*vYK.WȒI9kdwǶO=ӸNвE?2:%=2OJv?:)8w;k; =yqO-XuN3=gknZ6zRqH]>O=Dr;tN>yyr7]0/ؠ_.0wy>J}Qv:&|[ѣ2@T'>P{" J*7|~Dm3@% xYf/i}۴oki Y)vADJwJ CP(,Mp ąp mmor,M՝S2QSob>AVQ`E"@ BGwxez D Frt]*nM?49Ќ5:S6'v008 I쩉nX,VUs= w|@,AA@W~q~b ps8Gq8 *bh p张nL`e9JW Zc#HeCAǹ=>['ۆJw߷{Д(!k2MsV1l4 T qFHQhՍQN*ȼL85#p9T'B(DTej $aeRpjJ_E&Btp<"&}~h wZ?b!J@,_z"@y5G_kUWhw0 Y?UW0k!)/׭T-#H|,s^Vu3 ױF͘beCr6zHLZ(hQ=8öw-YXw%޽j^Id,FzHH6qd'ۦ4.f^726iȏ_xM-b^P?`,(T2, 7H2<^H61@X[uGing38X4ӃUE$ڲ,N3-4aT~\)ixш/#lxS84k1SSEk+P CH $ TGT^PozlM4!IQhj56*Sb3++Y2mzD*U W!q4fÊGO?/v)$T'@r{~+zLL)fniad ,?q݆}>Z#U, !A.4 mW2Jʧ Z[QSUȳs9Er"i^Bx9HU(҈ ޞvrbvM%BYXcIk -0f&%-e.ڠeIDQE6a0 ,i` nԎd׎+^ 0l?+4gy\Dcݢ۹jre!G|:)6%ҡ3C , IeeĒs 0Hd7)@A"b>čSr'O톄]msY >]@F>yѕຌ#&e"`I+Cl- jc!H}_@'՘ B 2| vے@i%E'>k3ʑBieGsZ@I9_D8K\7;RD;FNJүm8X,D.isHƅ d"_L66d`R[R0Y%be7$F#>D躲[o@C,ܖW Q_>¿`IE*iBy.L@4D愧DɑYWhWƛLjIKYgBRD!@|xj'襤(r&2A00~_W}{ȉ !V _̌1_")ۄw<'XA{n44d7Q@tN*dfxs܇2C\R[$%DiZ qӹ0`T&ic(AVXJXli3:Z*ݺ\c4o8!fg 49h ;&WvXwiKS 9d7N6 D3l@C08(9.$#0e7یm r1NL0pH$ @=Ke;S 2/N0>{G4FCLK$=7>U 95/]a8]ãMYFF\]n*7 g"7|u[6{F*Үꡣ%N)+Q(K`hC 2u@a,:%pL dCp'AS%S USQR9[/4ٙVu &#zIcܺhw՝C2=8e۠C A 8TQ6+@ah7ͭӋmJ .x7{7usfl780-rRrJjҡ5$*&2U /MF?*~^gZa:160?MS_Ma:xU䀧~wO'Tr&"2n00$۱=#[ *YxG0:.].Stw0?XI`J×z/6 sZir5E˙-ILjҙa 4[qN<?O-s%`m[ꘚۅ.bC!cղZLƋܔ:,kS f&ȫA}s߬*"Z̲\naM~kbBT uo4 D2E'_|sCVm@UcXŔosxqpBXXNpEHTAMCK T)?N_ާ(?FۺrCnH2Y9T:H {O8R{!#\Q6|6q@yǓ?4Rɔa7;! *""*JT筴=4uT7&BFRXܚ4o$Cc&Ĥ$lt~PURIG[<ɿv1_%vU?C$A(qѧ >>r좻0޼T5*TpX~UFJ&i*vW`M4`ieUND<%2YX[4 E{@ ߽>Ne,KDB@%פ (L@| !U4RaTVM"N V7vHEmr2f"jR< FUІHl՝M_0rCU\ʵyCl@͜y$eܷ i%Tj5,XlI|>$EQu!MPlȒF vc{B Y, PrD&')b1V+NA]A65'2ʺ듪ThWIxTтN_\yxaxԆ㓲큄ebGxO}!bH `л; pq'BGss=Dâa5 ǎ;pscR.jeNs0.|"Tjy4ZJ9/t63"XA$Җ6|.N9oi, Ч+'H!BHi8E&!ϋ!XgT)h(k4Y`W|  {Er΄gk[7 =:> QbA1$P %F6iBPZ.J09yt8*.{^lm.C 6k!|ΏP?B_=]arTey5儹-F)B+f%@AI%:$_ۖsC'qQyGHq:_APL }8-:Y$6Jr0G d!C:L^ԅ:3+@4  ! m}96:<7A *H>?Lvw %\ʔC|. @i0wG#!DA oWy5>YŽ**Q25zW5xݮۍ%$ZiFoYa ·u7*`\6=MO{qFn7FϙMPؘgI5>CӸQ)/\40i%O~`4 ݴFk FSB.lFz)7Wc1 HhHe$Yp\pS/bh9a6-r]aNuD$n7ZKyv#nõݺ8a]қ28imY#5J #rW)O"hfHw=ߢ>gq?1\'6ra5?+V'yzpjϨDoҧ&G1Hۧ΁I 8HT!R<:e<6Fg,úRK "JB I F62EI3Y&PY~㛤uPv1r!vI!U+"SAEi%iIC5C!b s&A lA8}(QAKE2$rdZ0KD6%4:P6plj/Xv;(0qqy`Z~Njbg` /sR}ʈ4!p>Y hMH3yBC>b@b9>LCf`s@pxyvC{݅,=8L 7MZDxXspP٩7nq%Y^W%C>wAL?+IIb]9bQcX&`i5`}= P _C.,UU~+ nc.o$JAÉS[8ٙ d:{&--R4 2\X&"#N`<x>o/pfޚ2uǗ!=;!#@HB} RyYߤׯÍx/gNNvuJ8zmUEMɱ67L̓_rCNݞzޕ:j Tduvͺ@hd8vݣRjҐ@Oa,8vp]`w\S1Āb2@wC Z8sHr8h"DI,yXJh;_S"!w(q!!E MaA)9z"Naֈ=IKCGQyR- %iL)W4 ކVyh hY-}?|Af&@lEjL&ȁ'd {x=}[iTr^R[fFq(B7aMhM1SD #0|ng{YgL$/Dx5M.SCݲ}+ A??ϻi'--/=?yWi/k?-L7o3?Oz9g~_g_?/_>~g}7ܑ]YUM bX\O)l' l dL[-i: ?Ӽ0|II) #PdHH2P$"PZF!QV@Y&AE`d  >Z8`;y&ܑI"cywl4] no 6nj (eYlؘ1kgWG_H\Z[K~Uى"&jpMh' j / &4BJM qXcu*l0P z yP,ڙ 6Bۍ[g*|\85tPlӫE QUx9hn'IEET QBl"4ɩbMB̖ D0dic `E5htw**f (SMΆjMwch$Jեf @P+;Xg^;]7gKUֻ}e3rْ\IȺ^iyqL2c{63 #Q.Y3bA `zer!re2AF q&THZ}jÿH>71<]Z{  \<.ը )`+#dzk x/ P2('}&lmIC$E i3$+L<} 혘 8A_lK 4RY(/JlMZǗG Pkmj2TaAq#7DEsl@*bHDL f ,U[HlWT6#KPŊlQU\t.UvXR_ ݛ1Vlh79Nn7{|(֬J@XwvǶ2juLٰ`ݩF?+XY]nEPLی F̥ ɻ4 o3߷5Z7c-VqVMVѬbdp;$iPtf9uZr6]Ayc4)r F'l.]Lf3V`(gNՖ0dJPVTӍT[] 'B/ 3ؾ6 J:[`Z[`s'h1ZǕw[cTƯYe^0BA)j-RMiUmZLY;F+1SQ J4o5z/T`M5FhV9NZQ@w-Z[.byӡCKNyIdҦ܍Ȼ :"3#nVB3W[q=J55N8W,19Ù(u fW Ġi\TVY 2RjCRL iyIP'&n7II@1R%.ɳW6&SvIbun:b3!CF2:0L;Bvpކ!6Bj '5Gά-ٰTgL>s/eDǢwgMSZ_ ^6ɕM!r })݅G;CI/CaTXx=3,ټk#m۶> g")%Cg"F5"X 8ynveyI %*`C6ne`vdW2 Bn]+5UcY6'IVE [v;0Kd%) ehd7B3ĻC3y9M@Fiv( /8X\Ʃ'm"6VQ̩n,ve#xh1L3$XF\w Bb$C%Ljuj<[p0zidG- ruՌۚHκF"Uj$qE z+] l&qts߭Я! Trt]:̅'GVn&4г!euU d:P3pN-sHz Z8Gl$U;OAgkQEl8lcd:J_+\d%{[õRFS~ 7Ϯ׊VE7\j<0Z}\"Kbu|͞K fi\*jEZ[d:w)48x CqT֢e+E;%M7jlkboVJkWt9 &ԬDEƨH1Dd4 cvHiI[sdMeV% ɜźkF<"A1@j4rsB Cdސ͸:j<, KZXREAH/}S4` b,xXmcjt%͇"*w)vj034A,8f*b,^\M#Hex]wf^L2XO4AMCI!P2Jsp;f̒ڼ25'RlM[͕1R"uP  w74Y/#;J߉-r)J,Uuv94"C:+WVX,EU|GGߑDaNw;4sg*N;8naXn:m,\"à I)fٕ[;QRUE#Ue̪ RNSi 6^G1MIM2'] n2[M&OPna?Q"F`[74P\s0#t⇉6ѳ//~?\<ˑA:í.cEڔ"ƏBSEӷ[Z[#~#-A^Bg,Qmb/U4Y3]%KE䓦 4qe7fVJ(ɫ`"evH!h.fbvA! hfИC)\Kvt@2DӃDS,tqݢ%:&҆(dL} ,"*1ӿaU-W ҺS=ٽw'{ASÆ dKse%۴SnDe6<kMJ5@ A;Di84feCyr  4TX%gᘭsg[D)w. K| g@Xw_\ Csg`HcҧC(i1**>t]aS WZ8`ZDwENr]MSB`$n ho<PE1LP` PiH`P Mǎeyu_FvVh(<,<~}ьJóC'90ebBVOrnz#vLn4!L&޸.\>IC%ɐ@eP)9L <q)0fR qلRe%|7s(hLTRF Tbs:MD" U}L,Upd0"S, /a7#/J|(rD$a oAxXwt0dOy;X$z!r`u ƞ;9P:Z v \b+!Z6F"DHJF>oW-z_`{5Jd/3z.=l$b@ tܧNJ3Qلv~[0z|i _'ҺY<OĊl:'ZvrCDǖ[q<^oS\趖Y}_@|8P g`i֍=>2{_8Gy[u $N⃢m&[9,!~>"}ߜ6:X;!U-'@=(g߰dܤ`aOO/s4PW*s5iV-98$=;-|8بb>oo<q BI8:J%6AJs3*O:tFʣ_DkWť 4@#,s_=p럟c7w'<(l@@BhpqWWdkFTEb,;-YTړQ y#!]P " Ě>]{:Q:%S@|-ōj\rlUKSZ!UT-'FRSJ2f/To'k'&J€dz* *%!P8$HRaL̄&aa$L{?d (3*̘2?Mj 00J6`Vk4lb@['!XyLJR%Dn:]L>5cC#G8DJ`Ky0 rON.)ٯY{uT fHH'Oѹp?Q(˗o؎ lDv[cڍ ] \M7* LH'|⢆#,bta'Hbc!T]E56a@R18mɞѴE+ tY8 e#h Qk`Y FC&ίsdrɺ6CҐ7ajWݪ1wRk)W4FY!a%wqNB5tVa);J¦$2fQ r=tEs\%YĨgC/ujݾrjnDOu+=HC. 8`a B9B E*gJ2[26/YI{^I_b0k9%cI`c;&Qqօ 'Y1,I3U跭e!#I;CT*]^:;oH$m*8rFU)gިмJzeg@[(0Ux5Q7ǎn1JX]sTsT"QX8ATPX $4@|q۶n9j!)O^$Ƣ5U"CgAGW*m-et{-fWcvfƸN2Nc%׎}lnxnA{, 甧}'BJ̦*"0E '6A998rE*Ƣ<ׁls9p%s")xP0u^?&rshɝMF)wє< e:l?y׶ƍ7*_=}O}yir!~O)zʵ]Xjg+R6 @،/R,I0`6 tqpa*N*P \ F0z ޶ubUHA|z=(6l N#%υG<;T7Nr:%ޅ0'~즆g~ Q'S 0fB7ÏkUƗGO|A0USdlѹsUlw;d5Ϳ8bc^j,!e 65+V/j`+7y4$3" PG_0K <{d8얈 FPl,T2rl6v&N0NF"@2cwQ=")~ɇl;XtJ`fb5ְd=_WoMҽsb* 2MhD",v%"hЫP)b]2bi3YȈN@8_IJ4 (tvDL7" ()2o݂b kr{}1%P:X1 bSC=7@O8KMȨݿBvSv]>QOQ)!]ݳ-]%#5pہ𘲉9BAk1ȌJlɨu҃ G9dX환EwL'eϯThp7 nׁTjR]PÈluD4Z՛`Q VJEbbg D,/bJ耷\yzg{f, UYt`;\oTXBS^*!:c=HGl&XQ,\Kfe;kH٫b Y7_^T9;sz Uk'e>53ߡ#jG^1V剿\6_#ƕ߬Rqu2dw 1 /]EATk^};mQK/*ٜ~z~,-jT^ A={dk],etdboKp(lQPJaqbQ@.+<Ơ9[ߺ4Ǘy@svTf` -FUXEPG WNHD [SiE l: [eT]D*Io ԯ:Ì~3śti=6Yk(+ Հ$ 8AE(%)܎;fcx郛rd#˩)E&L6uaBqLQiI],o3A!KX&s'>Q:\sB[\Al)Rz^Jچv-_K1Ze֨C¬CiWo+\Vzn|{\.ʷGTۯzxbŝВ R8pv4&.Ԇ0l#"n=yHzy)Q$пT~wA'0^?P^N$;}ϲ~}PC}}xGd$d2?w3cZ@~CRW `}w<?G˷U)&Bg4ѕU!K)8&H8& 6r2eA‹66v0l#uHA(?o@F~lI9?Xdh(DhSR; x [6M]kmlHHaRkҲTEElEb!C>',_v_lvü @R 8QhZZ e1,c7 &@m$ND%RђI k XW:{s:)uUFa%j!]CAcj un)بC@'~i():l'BzL54Pn B DqԁOWd$˪8q;k6 5 )dHQ-f D^qc T廈Vv}0r*QEk*qe((d񨥵 vJyd(U HF'MmҚb2i'Tvj:(fINμbMz[\)50ź^Sk-/}j4e ]^.ζD",F #L3O4ِ1 HTG(mNʔNPA>6{ I8Ct\䚜<ƗF &AG:v-E XQd$QəIs&Il!*M!ha `9y)Ü<; v92ҕ >Mg*H\Nui 7w)Ķ75n$wY# a'^cYBUӊ(aF4uhz1F8Ř.R07pi3&'#rF^|z E:!z4S?NȹO6CWGprG>!y <=; bb/Q̡%Gt d4qێ1Ċ*u>tѪ5w0FX>.EPxy hFn!1s/x=y,bZB/p$H_y #N-:yv J;ՁfVh$v`m[cDg{TsD#6iҊ-?K2'O,gJp8we<.83y'l͵=fu}%'79Nq-î7ktG)m; Ir qIk:ahXZ(m8s58 zTXFK XXNYa9 RH~;"vyF&#ϭ0Q9RTeŃ="-8ranBA.qH*@c{통 DL8[W111*BPz!yn3:NS7gGk3]BV9CqB(!L>oIKu'cӮ=2)x熝JM/(¼,"Ըoox~o0s!߂mTvw j[)W\D W$Q~}UTcQ%ZsYaB?`$“QBulocG d?Zr "qq3w\pA9Ašf,IRԉ PZĞ2nzqL#Mܑ68Mas4W!@W|Ƣ yNo( ')DðЫNTHËm#|Ω򃃎4 m 4h[I4PM%EnP}'wre2V(Ц zc J&J# KM#J@Fl O!cI}l%MDA>,fBUF7"@L:9)nfiFGmo 4Uư5L2aTvڌ6m{j|؄:jXP9ߓUgbŽ9W]$#V4je!< $8nֺq6*&CmYlB*$AĶeι*ƊZ߯DE6PdF Ԇ&K,q2b&ݏKS TU( R!~xːHT@(%6kY$PLD~DҮDT$?Ϭ|T2P])MQ0!Ie@zStmJrmBN85Z]}=ԄD*dIos  qD(B`2 XXY0+5EV2nSaLR,UJɖ=n]'vYKbbts`avVwN]buʱbk0-sm(-2Ip*i !P%01TAU鶻*_[d('˻jV,\\]MrҒ[d%fRݚ'gvvO(f\vh5zڼ BPΆszA`UpBLZqT|9pr *s+\1 1<;% q[XV֞FZqWyφ45'P 23@*>sQǜ-XwB!sWL `_⪸sMCAE[OÇS3ꪨ"HHD~kP/Q+Z=i6]LGM%΄N6),K!9ԛe ?^=sC?i>C2= ͚:hAh.#_8)wT=j#ۦz갰T)Kh ʗ2zL 6^'5cI;J)2ruA\P\dT:5 y4PPn=<|v},0USuyүQxHSv랟 nFprx#o'v/K>Q^JKZ%J>gCǟ1G=%* ww(u1I:ಈz{MMcܮ*#I8fHL޷Ńqg2!:eN*E$)E cr?^B1 wOXljoQtEI/ܭ(i$ḬKZ A+ f֨ĵw>gFFk2UIm Dfe*J/;^^A'Jd@6650/⏒9=Oo# yh8O3CIer;h9t>^U@| t?t<]t4ie ݿ@ +aiǐn7OH/i"Vʳ}Aj>Klz~{7 $O ,=PȮDC}qn'w,ӷ=_8OCR#Ni}0w'Vg k{w2(lS% 6MFN3(pmP{$-oi 怉T(BQ Sk0!ԃ}TGkC">)J"'<"ܼˆB?!OGt&l!N69O]IG^m(* J3ٚTRf܋j{S:P*$%bP{> '5%"E" khboRbx]JLNc'mȚrN+kWtDR&adugرA!KyH~~ص{gs-"Rur""|fr8?#G??N8e Iéa=udS ^;v 'iܞ`0GuϨc z)b q%*ЯA:#l\7^!p~*bHu 9BPú'MIA~JN9&@'-+.)؀F;(Al[$nv.pD_PYP$!$e Չw $e:Y RYGM$4[5]dr"Զn1z|!,1 uCeۡlv/?m ̔"{4nn 6 ?~HKz8Bw6c2FHGٮ@4 BS[R$cJ"e$2>lሌВp%J0Ok7Ma6Њ*,Tաj*Saޟ9;8d՚44ʆ139bJ?g|D*"!1tQ+:?I7Ê o5];ʍkjHÓ^;5KzFjc(޸҉̐bNL=>6yg QN7״v7aZ恭p6X,X"eBcPu}!&C&zu$;ɹ?vx `SѺ{_NP DtS~{V_qJ"_1()Jb> u:cDвakW<;ĩByLL`NJR;$ Ì4T T٩ А e`^$ @q-@c1GP`D7!x ^#|/ptP;H-E 6 +UPEEPⰗP0/(‘X!Y5FGk&A;. Q)MJM"SK"v'aSwfǗ{1,D*쒨aKѹy*ӃAV zA6!8<BcѶNZ$ҊR06C((43]Vw9!Th g:n ) nH"d K 0aB'Hy(ْwC54t'9ȊY(TPĶC"%VQtȓ}Қ@<#Y9O?HmEw[ i%+)cbLi*bE A躔Fo20Jeh(F2hb'p77X:rdö!t4 =MF@F (B; @Cbk nc_TХ%)HB<" D- RQJ4 .4BI( y} |X3BWhhQ P-<*E R( (O&`#/ 0U 4SZ1fe{eG)01PK3{6j,16q4YAd = ˗,s}v[ `U@g %A[:] ?a;D O g~eum?](b@$U zn.c'@%3QÞ1pݮY@RWlb~&ܹHdoY* \'?&O1a0B{$&N'0Bb4j-Q*,֋QUumhijd<'g~  ),$:ah7BP+F@XI^D0b4|:ptlqNu\gR&0aY4J)SQ+bam$9ogs6 2xrx| \h R҄dF  H!n`X 2\iJ!4iG !m4̤1¥ Q!L2\i%b lmBnkM] U`abΚ5P!dA@ ̆eBJ`1 2Xkq$4D1h#3! $h:tև4XɘH$F@GJ4q $2O -R•n&6Kxej۪oEOB39 K UgXz-Bƚ Ƨ,̳x48aSJO[ϦkzC$:  z&" #Ѷ5~ 2٠Dђ1"pa'l8Sh$Fi&Vc|42CLbo9ۡR^vو)D$7<^Q ƌ/6[O2̶)lb9vQs]2vu*-16dcC.oi733}`2eB XPH>ћ|lh72LLvXc,,xqR*v 6S!o.Hs<Ƥ8a]HqsCIB4'_Wǟ,Gz]ܨj1>x]d3p 4$" d}m6q:2 Љaci N(t (y򰐂F]2 PʐmBP̋ c84M mȬvv]{ݼCĿ&iT%G2zx ~rAk5?XۍεoJk8{O_"^҉MJomN",KE)brɭ"1ǖMIffcv1b,qLdK*g\7M<66؍N9B?Jh BhtMFJT~<~_d}CԢz8e|l' i= ά[}˖KFElƍ.\-r[d`Nܹ͢mܶ-2:U5gvgvmEnZh*cE hQQTh*"mhKFaSv; 17X-mֿI0k%Xص$f&CQH:hK2 B@Xx CZ֛޷i ZRXͥ%QQ$HR!Gw x G؂w-#}@e@ !=1`x?URP 0_v9gXhBŕ>Dm"|%9w3 ŀ;&QSpJrE4Sp|ah}(1`*=@މ^KT dAz:HCזBVs6mw=,?vlp.`* |o~µyLzBxIyM?9rc IYe)].~K}Bx0BXXEFu,ڐޘ*8a'7,1lO9lfu{TaFvڈe]w)Tw&Fu֐ՙҜLS!*ĀXn0*;oꜝ8q"=fϿ1 CjxLR~|PG8ѽKHcb!BRB!#B?8T>.Z.} m~ۑjI4,$zZhJArfCsi^Ә$^N=eyJmXO&Uzy'.wBq t ,+ &j.c_`m$\~mC&D 4䛥nFXԪH+Bb0h t.KF0y|uD"!HZ$[#B JZ1S^'SnbFE6\qsFSKU۽)d>KeۤJ}4pIσ_`lr'z@ꁊhŚHhTz'.]ōZ]u8678K)8>{YlXю1C )s xP|33(lv᭬+R3i@{*ɲ3f|TbaG6j_n® 5¤z~N%l "36! ސ,h{'@4b5.U"Co!4$s`uT,AFЩÊQ,`l[E4TQn@AuC \kNOFj$ HUuWV#ҮdqoMlUa~4[&&RMh+9`xl0Qxea&7ۍJ{+8LAE1 e'\Y*L5m3{./:sH-rZ FA%QͷoBnM9'>fFTUSEZQ2 YFJ̔bc%.y&&m2ق)9X焼K@5ySbr^t\LgQU\\:LB޼f*8zۣp۹cQ$]Pk+ʷ;5EAɌuts5Z&mA㘵Mo6.&u #^fil -x"}*#fZQi`lmaVbY}lR {IxEnEqjZ뱘7MeLw֞փ +yc UnYa:\W{>ִw5rMg}@ *(Xa$a߈lY;T"+*Jb2y 93mY{É~ q\Yd.bA/n$cx<fU![vC,\dAu4]EXfJnDCM/5U檙g,W}C] E hʖDʢNd֗z!$ ?]5UZ t `4IOz,}8a1~?AKv> w{D#oCU|T %<VqnATcGfd_+3Ɔ(j.nkY*۹ qȥ|jn)- 2s>~Qߴ9>I.(O}W yl'y8Nnq;Y#̝aT?ޢ2…W, X @ I2Q@JQXQԚ P%5@j4lVȍ6V\lUY5V bd*M.J9R(252!r6Z֮Vh[U ZE %  rDL2ZbTRPrUԍ%.YP P4Zn[njU%mk*+HJBi-`Rr Q44$jCQY(~bAc6b^sx ~l-'k4CBguuC Kɒ.}~5JY(R)L0"# VxQe! yC(.SL++ / 芐!2L"  $H+ԔJ* )B- ?:;g}'f0%JZ PbKq@ H' !s{)>~׍($@B]7)0 !řJ?m| +$)"K`@>[K!\XqF1Aͷ5PDb?H%8{tD{OJ= OJ j:}6Q|-yxoBs:5&@*@a([dfb)Dh]C2rP@DL?u\і@$zDmpptf>ܽ~{vOP]s`p6l*3 >Yf*fϑ{ǒ~a.?Tو 9~iww7}r$B54i?[Z(Ze( lӒW$%ΡZ޽),vMJB D>N^j7y& RV?E "4j">Km"J`|<#=穄:B_CIK,6[+wٺe2cHBɄ#7L6S~:;S>A^V|KGU P\ ӫ@(0jʼ``@CHm'4pВhrX]ɂH`,D,evxof߲k61^Ke kjp4]lKU̙ 4K\ݬk.o8J,"wtMV"VXcl  ^va (<QED 16KZvlI偈fv qKīR,< r6p\G6^g4{\[:oY#P#fG˕ԙT0:LNp1SJ>gO4}汃3 ӖXhPu;);D+G %[ƥ+_1Hx}iwd̴aUyS˺ʹX*e*[Ⱥ4H*Q @4;߻:ra`QQѱ$ӫ"%TQjB k54J*QƤ٠0P]+ԕrSnU XS}kbӒGwB($d䦌Tlwx) iihdfHhgs7uu;@DdL SjX^1PO~x{u96mݒL]dIzeF&I2ڊ[b@8u)@ e0"BYąb**RCX 6Ѝ\$h&Z H^-6t u-b+„HJ!8& M4R"R*pHJ- |;SiWu]@[ vpi` wdFC!!0ytnmZp))Q_9E сx}JL~}wpMo]!E8҈{OWh2BH*-Ԭ2ɴZɕfdlTbZشSk[*MlڋTm?\!E=j ɧIőwZYZG3mюb*sBƱvsN;>h]{#?i!61!94REJkT{kM R-2+AdK0U"hn,ҙC2KLշ5X-2C$QfU6k~9#E(RDI'>(ju/~n Ci\F y9 ddRR\bTeZvGڈa{x=}\CIPl)`4zt@ EZU@? Hî?tRӋQ.΍ MRgòDc+t4c`k'lB+|jT٤-{\;v 7$9༤B@ B%1)^ v$Ѿ9XRBP:S&'d50).B84j0-ᒔjaaE >hgV΄uWXWTW!f}_^E gqzUȈBbp{#(=dSb!7}b@DD-ICK+(,[JDscR)iPNV֥ه,ZKl٭f:$ՠ˂TBR|x HSItuDd`4djzshuU|*ߕQ>RQ bz9 6>k>2=|hyڙXGb)2OC>@+Lq^ 965v*UD"tJ5AٛNZP,`l28Y$ )gbM!҅(VFᨴ"Hef$+";޺:dDb L -bs 76N/xˇ}H `m64DNt9 E qJTc's|1?<է8\ [,USKګֵR||3Bq2jJ`Vmk Fd0H,҂"wa.(YDꖓ< jՈcv7j&^2˔_FI,,B\$bwm!rw2NZ)5Mͬ,1'׋W-pX5E[%X2ɫ`I$4ppadA?M01A& R n텥h$`!),iЍpU &M4NT8Zvٜ$?MU /#s Z_G6 , 5$̺e;!$M FANB: uF&ʛ{R{{I9'fftX(-!5ʨ~S -AiĨ̕KsH]2YNm~[UIkIJI<|`;#}_\km%KK}TQFTħ_ؽa}7=#DDE:\t]8DV&2'EմyBl$`, u[zE'e}-6%TTь/t ]|Y=WԳڍ.5Ӷ$5D_Av7XQ;*RB{A8%cF.X&a3&sW1уQ-9;#e6cBC\6GJZ(H\{ہ`h>y콾"sd̺Eқ s yCUwLZ0{!RJ95TTZ.u)B}CObJdVÎF:sII9.ULƴ(ےs-I,"t dN<]iÜɖ S83TJ\p2 уBJ_*$.e6n7MPv)▭JaSNb02dfJˉV#Jbc9042GiDWaaqbPc͕տy(QzZ$1e7M+HZB ]Gvq6MSe"3:gJV%QAQuuEQX qoӗ{$:Q}ң'*umjV<#]֖W8<[6RnDAy<^hΧ3C!Q^m]3zaZyyPw;"'02Jg;ZomYջPrr2[5QHDT!(+aAڠʣ|V8eytwc]zs(`oHlѲ?C=]nOƑpN޺3a`$:ϊ#̄%5%  `9# 0܃7 I!!#jE_PA}uKy d0q-=@tӰ%ql;lbvW}_H6K[H)6T.A ;ƪ0v/EU$ ! |i6J_h} C;s_!IqjԮ 3KHgpLqNv2Y$-tȔ1>&\'# Q*J픶sT@dIw 2gTi˂Xɨ1$&kMٖl`$CpRd%&]@p$A0u}4p")&>V~,SQ$(%IN7>mb_/73ò]1$9*0Fp9wt BfJ Ī4:5k]J2zxYe>tS t #7o˘㳃T"QJ?a1KDYT 䜂Q#y6k1svՀU Me[-ڷJ!x]"lc0zQ_\)DiSۤNsˮFF0 v%I%??a>UP yaYU832|[ m`V5dl}ɻ#'|ĩPMHA׼ѪI-*Uz^o N8TlNj !/XM <ݞ8f*Z1x(lL´ 00aF_ a^'gS;LJK'< O ,E]$ FQ8i"Gxɧ34`N+rO UL jþc Kk LG(d&CLOn >:Pb8#zzρ*T44Ʉ7ߊꡜNabEXU2ST%;i;!OOx}'qQFCVq`6@=d;s'4vܱ4 [}?QD a=M !F<:3\/7|`A<;B*( '&;X뱲T$ԟs c&i"Ƀ+FP}OuPJ|7!+,urD]%\j4=F%g%W,)>_cr(?u%mל'7{'Nu|tS9e/= i/`u! [!jZaE|Q۝lK͵PX/XSBX}pA@YU+ER Ve3fn&6PPQ4mjǼO9Z`{ Eq* .YgAƫS{sJac4q3Vft*"T!h7p@Xo2(.ST+P7I] #$-(@ADF ]cRwkEY-Q &d!}KfI2NH, Fmb2 ~0<؀KiC!4:1A`ȁJ D3”ů[Uv"Jd~O#?9 *003a{I< CB#JrPyQc8?5]Z`{/+hP͍6k Q }J Ykp>*ED&A2^M$.RnI2Z(Ф[kv-_iF,mHi!XU۝Aޔ%7cLobev'"rki9 ehTO>nІnvd60iC JX B:ƣ%ݻ9vi3i7-yD9ҚY~Y싽9{'#.بp|Pp?yM;EwQ"6tFbn:5"`BfۜJi])|[*D)Co@⨔kw,GWJj7?@0MҭMPCN2Twl hLl.!Oq!T/g܂ G}w 5'#‰_O0̚E YB+rsZwq]QGڮ~JNGq%pr(,qkZ oc:ypQ>@S*Lhq3|&j^[ur6hBХ6*(nJ4e*O?{L%>Ja!8c(qGچ~_?i@ .0Y;21‚ί4ĺHi S0)n8d$Fh] Mfah :BЛaG;a>Ar`Q*&&Ҏ0_(52pڳ)$)TBwڧw&{ru\=v[yfL0aSv4u|ÏѽHht\-֐W)rM:c  Csc^ _8&)څm1Iuֲ 'N68σ$Z`;4 G7x'/ыM ´uB4"Mٻwk點/;y;kg!;d ;:`8x< fl{n{|8BRGT`k .QȠ.aC'`:<G#M( {~'Q~ VԁJ&vχ۝9>Oa`Ù /ݬ2(5|4h$>5Gq>B M*•fIyy/}_\wx?Aky[g>\ :\]z_ub T1%8fD+[K4K2 e &f7W2"t綍 F@<.ېڢ^ ps\Hg]$ңH<h7G*KpH2#99 7:N]ý_F#U] z(`jx(0t`dz~s8^d=.p48J6yA"GĩhqL/Dh~]O1)60Šj>E{ظϜ%%hz-O< 5YDιa%HB'B&vPzd'l W)X7 7dž/ ~@9 b"(#\~U8~dž{ T¨ }E$US,9XCw7HlV?VFNB )M=2wTXVb Hmh.0imr`dA2BU*c&-CBH)҆)M wOJ9pbP.mSQZJE1˕hҝSsN8d8'!& `JD'Ju)Ų2B2 `!@>ghk_y~ϡ Uli f"{-eHi@ ۚȗ^1O/lbYm6;t-NJvZTql;ȾI<YЇ+s1jWd unC n0:>v7 cK/rpoiĈ潷>z/m|r2 B9 mm+ŋQ-,D~Fb?!2:7ZZj-&] -2Y5k43y ?!o[SZp  z$# mye\$1vEA.TT9JziKJXP4O)̠X"3c!$D1 hlZԬ5T&^{= äI!#ܶv일!O4r9%=>Hm0EpI6| ̐3P'_`R|siR},fꅁRNg@'.@i ? ohGu`ayaޏz)Upa3O#kwÏU7x^p윍vA(ڦ1)fo x<L )F݊2]Cgu417 brGɳ6ɘr]-B"Dd TL`זP}wkd,Ii!:dO5SN$ttsᶹ;}l "aUF#aRi#`08.^ "$D`fԓI]IRR1QX(ԙ0:7G9q۽LX QReY?LJrtCb;:6&Oad:fV nPWX]$LfFC&qª 9ϝY>!8CRŀn AyCl~Vn+AIM嗄wqɉqv$vZN-X.byf!;;$^N:KmXlG:ì$q46M`6Q֮ 040Qvm⥦IA ,UDY@PgeEDm_:@PX djbE$eQUƖ#VW'C}gs19~.v1C;vTS4hd@N x lg@0AtN@~U|u1h2~|zn~,[!  {p$JZ!Mz&s&!q̃O'n}罢Nx!.%"]V|"(q;m`! w 464!L:jV=pnF`4m"SrbN_|^粘%I[ԋ]s\vvK֝& IN5-:`-zyrՅ$2$2w ;cd09g=Vpoi~#WgFd8b2T$ɀsB):jMN7"EH0Ny`H,ť^.l ifRVmKD6ˉQS2RȌj7=1Vfuݢ(DSA)@Jt$+lwsb.A S.bn&;hcY-`M㶴.VKm5[L#6i6k"l۠-"ЯL(%DE;fCdŕܡiywOKKCKCf@@°Vћ;5nSi3JEJDҩ(WV*^]EHS\wl&bpvCȠGq%4M8bA`%,&iXŬF풄!9vTC47;J*":ٮ[k ClDMTan'`1l 51ِv&svL CW3|b5Hf3PAj&\$rhmBH=sxuIBm} CBeERJqW ,DM *I6ϯ[&qn*[\;s*L!;iaHwYET(X%ph#‡dmS9%z[5vܵh4/,d):SJvJ pIӚT0 T+t4z-E.[Kp} X[17F7x Unk8ۣ=э STʹDă5FP" 9\cYHG4'l˚ha\4` pb:&xCn`F{r!&Z6ѵMC&i*BSwj|})2%o5^o[ǀWwN0tFw&z$b=DLAC}tR Hw=U+FJU[!KEn?pOc8xV:ZsHADP^yt:Sy^`H|vbX0fpxZz +bٖ.{;:޴-h 1"LZB4YlUݺq";HTYdN2B2& 7'^2>d#N 6Hu+Im#"dj2 (~N|VA?.vae\2˙DTJ!91vxAT5598~@q}: 7'YFF,Kc ddDd0 +CEW 2z2%˪H>7UF7B@Q䘔71 %IRƺ- )XHWqUPJɐ@[lg ݡo rEw/D J M80DmPk,™U-l˹P/6 mk69ރiȕVtճ0vFD&شxDڤ˸ZE&IisCfdCEbiW $al!QRHsیn 8,$WZҵx8-%tBZCN$ &lCf;;HL !%!| 'b"*F01رX1,@ 6ɋWfZA%ըeŲF$MwVMw+#d[nUVjT4MCCd@6 vRzmҴNVkVD\s;xg5cN_`7*.Z|C=ݣ7B ;`|4Opk܁}އUC$pZvvo GWdI[m}4YQ1\WXukr8f7 (B.^1Uy m,tl0žo"k;駦"ƒq fv{hp{>RO ~r&aT==K:֟`ߏ\=.PoBI%jhTيʐ4bmnYUFM1MbYle&&m&f ZfX6Zkek25dCTJdjb֥ L2DrA&C2hLL Uִ&B,9ޱ*<+ zf3]':;,$0H@:aiR Rf? "FZ9wXh}GxO}ۓnA7zz>|X1M8$}W#;ALCJ1%I2ATݧ+J=P=IFIVyѢ6M~֮$K?^TLT^m7|sGhV|T$,:Vt-,":."<;hkEHR\>ưKt~ϰ?ǐw<}sS۸H]-IhLFJ #^ =`>5|= lH|Di"ČP>UznH~Gh'[wÐp1ziM/JZF ވ Z.7TLT B {zi(TۂttNǤ𓎳k(pU*4LJYT4_$ mo>3)Hg N4[.x8Bʿ#0˞~V'c& RlJ#^bZ겇^k\wӨM'*iG{*"sz5囈V]T6 xF38n6 t-Bˀ^s1-Z dIlHn YeHRIG&mtU}GC:8[iUeӵ5N5i|"Z٧JBևk YY WLu-UQr/ WL */WWD*ŵdDPMgJDDNUJZ5\$[FN͂ BTA,q]ތ<оNҪil"zsv)"X;}qN/M]lZĄ/4lTrء5fVުSWC;~$ ÒN@aswnsۓ]MPEHVࡊANļ<w&(`̩:Hr˙ 4|y8y] W-+DttC^ | S}QވeU*y`C/)4%qDΓ]vL@ ۝XM1;\]5B3aXnX &fDF0r3x2x`d$d.h߾Dw;ц^;(oI)ڤrd蒞:ߎ{杅Dq78%bbQbEd& co&2T0x,7խ X!Px BSN EP04g룞кpŅyfn1=[-cv$W%(G !CFAJ,{_*gVIa:RYQI hHɹ;籺nnýύ>L9HPU\ri@CH*m C62pǜ02J,44/&0XY N*qF0KnL]0DJ-X ėfnvm 6Ke 4Ԍ%2MpdX@a!z2m8 06yfSw˲xGQ/:^8i?2#ۯvmDűSӚ?( ~@ Il n}'>$Gv eLcma:(a PLhiMf8b!&hj|ob >ںO;}}u-m30 CLuf4XX.h@<;@!)PfB8?m:()>b vH\cce> d-F J& UEmh]s QYܻvZQ*1phF2Xzk@]kFŞ0BKtMlKP|Ri*E"8uor$iGi\&uiO\Uy T9CF o%A Dg1@]^B#i@D)zp]}.aH5Fԋ5Koc Ǘ?rIb[C=kT,˙]'njPVqPB QA1G:Dm+Kns^iUa\T/l=O!}|m&#0<u@> pB(i#Tlɲ[(VEB tkrÛ֯+Rc+ ^/(:MKJ&Q<9vO\-%S@ 7& H𹥑PvGw[E5.[JSNhyvD#U[m ]7m.wQ(ui;CUV)1P)r`[6ZaTUnb c͝Ly#Dl{ fX" Ϡ `|Ϡv>|䐻Ðw6o 4 hDqf7)?=ܔYCTC4S[.0LVdȄE%T-2Y i{)izy 𑰪.ݦu,.@Bh" RJ%d82g4 Ni6i2s*&_泖sfNr%m 0hbL`ʠ{2=Q#c$=O/= .jCQh6P@vhj$ʩlK>b(t. TIVjAFR& IW!5 m+CHf$` M`:JR€`(Rf>62}M53 ɭeP7؄T~O>Q ۅ8f1C y(1'Sf) >١_YJѐd8U`)bb:'RkTF~kLdwWM XKbIEXm '?t2Rj,QLBI!%}@'s uvkx$y=?x`m{(~M6h@MUxo^KR&+PRFF3DMRcnRZ5Bs3NE,%/&0B#A@c"iT)SW,M]!N3gxm}KBEADR j+~S@E'>ȥ(R(+mCE>*eJW$ϢMM|->⊠TU%(+~\P),{}NipL bY4NRb: _iP̥"Rف2[W5kW[X֓UۛmLĶJ݈%RJ+TҢ-@īM*HA"{YOy>i*[I͟ݭ?̛!&q["< %$~'@⒘;dwSEvH8C!LrJ;7&8 DHOGoA G:w}}k%Lr mU Cc50 pcp 1Č)FJUxz!\s P%%MY|,e5aDZ11E[Wcc{Y]zIOƢnV(=ϏB/D;[UlLD}b\'JY9ޙeWhrp4ȅg o AO7CIE l?ӆ M04@C1a7sz4%yFSQ\ ]Xk*xܓB#:)H iN\OCˢDZ"EwlSgc`#gTUPT&*GP5lk 4!Z#8aNsi'r8oMmA#=zrW>tu&!n<gGնaqQ _<@g(Dz `h?=zɘÉK*>J0<1"'V  U&RY!;嫆DшOѮ}>WowN,0aP/! XS[YR o;ko˂+4u^5?l-PFH{IY%AGIws7~[T #n|b _ ᥊C-(;o?@:O#>]̌6n􏖴."ɃcqUG{Fhsj"Qbg1͛5}O\;hчv}LvTD4y4X4T8XR&_waZiaeAFGcw9rv6y"buyeʅXy–PRI~zfaVq͛ҕx稃LHdzM,ǐ}@%BK@Nt :a Wk߻."1/ghmFޜ$0= 0wʩ"$fs)(ÚYNٻ5-!%F޼|w4&R%!؁w^d 7e4d]eBnFN%˟; V )ȥ 0'G?"[]AeX±XV<;LW |N !R^Vj'JNCqCQw$0XԱbEvi(SCS){W(wW 4" HrHZO7mfd`p nn :.j4B"0ߐwmDP(E>߯؄=eKȩd);(G?{Rrk!pt=Efehk%ճiIlCi,1B[qU/Y%qRVG _:k˻#M!j3 e2}Ɣ 5;b)64@0a ^䑤3I3 !pXFnTY32%M^3&rEF9Js5>>I͓WbOۮk-.ƓY]׏XT ~MU3^%tud8u\$&zC~A7G $Qe*_UP3:ANJ'[d6DmIV’4O>Hva byjo.Wwd?v8pp>ȉN,%id7ġ;AÞ}Diy#W3=?] 1[Ca=T(XU"9,86濟̴`{F[Fb|c _brmSAs;p f.=93gË0f4@YxSubK"hϤqimY'JTv07l1"[ o8Rk}k:S * V"l &ծjչfcfD.`% C;E4ْh/{7dv )$;|=uՉPN! a|@uexgeT+زf9C*%)(hHfOkf=o6voKU]%ٺ  0RG}] ْsbX!^||Gv(Z7eqƹax`$Aʝp=r7#zܠ{#{^ehD"# 00"a\h*c7]~}K<+ę'& \ƴ[6~SVLږI4=X5!3)XW˜cF5JԼjGyCxxOs?9{KF_"ݫQmY!rJNҥg羴LUP +f!H,{Б.$OajH`d hV`H@%-DCnNp8<f fA^rl(iYg踃_% /q ȋ;?Y턡G8 {_t:0D0VɲO;= t+a`b)Cٺ#y=/~:g96LᜧW80 Z]FtM6>uF|Z:h5ǧB& ᕤ&.gk9uۑ(*Tp}6P^O눔(*H`/ MJy.ТxxHkMp! hedK1)% 5 hئ4ٓl1&YML̐H(ъ,L51%E ͍ETm24bKdRY&̍6i$HE8M&}&ъFj ]Л"6LԀ+E,amG`ZaaZF`bS+6RSCuQc7Y}kY)fs_QBҚ] ȷIRШ󚁜b< &xLҤN-U#2a t"3.H]*@տSɒF7ij+2Ū0f&JV _5עژh WEJF`d DFea#X]LgZBD7^0ڑ(E$4URY&J8#'DPޤ췘RH4gGqU9wwpՉTh<6&ʵ]LsAIʵB"B٣symJtmVJw4lGT-*ߩ*ɮ*PX}ޯtTw@b!t[]X5/CpNhJtux,ŀ`Dz86~p;HŀL v61f$XLO^u߼8΄,0N:k8wlZ'I1΁؝*P-]"YlWc2kd 0n~X#B44!DQDCC}ۘorͻY}5H$"H$"H^{ש} l[!_xJl&3 "!j wp+!PY- Y- ϹĄvo&S):_x#BXrPS *Ai5Wφ] FEJW- y>]>xFL30wRj܅1K,+m}ZVlɎ83V'[E`T~שu@ :YpX^{kE:1  ;l}&R:àQxuut@b''6 j@C"!=&Bx6:"hi4g@J)纠5yt4C""n:cOq #PN2 uv Brc<TEn\HYZqA$CHM@i0(pqiͺB( 8 B{coi Rޢ*b'DsbKJu'7XͲYE9^ޥ .тwM(ltN83A'v=xwe'Um*FF@Qt9*g4Eh֙ydsF?jBJ#~gslt Z6TV#m` ~*ۨNf $ȢK~gZQi>T!0MF̱A)8ՙcP\ttrX`I M /AV;Mx#5jW&흕ы[FѴbՓVc-IRKZhj,dT@ $Ĥ$$HM.{c9'?Lx3 UF_o~ZFI$%mv*9VvuVI ʡyfTTl.s0Yj=\ǫ .imcm6m6׹Khѳ &@tއ93EEEEEEEEEEJQQQQQQSXww߷P-vI1$a"{כԏl:`ɹ瑦؀Mfv=̛[A E$ws}]pGvp.'(Cs(~.}!^%GKurwi1n.ڈ4j9AZXikgaeXdL/t!Tl0J d>,'|h>)=̰^@A&QbV`)3& Tn:F!-4CiZaC4"KmLtI7~q϶vY;~o$فDReLĿ,CH3"bt g['Y22U@OJЩg!x2cZi#)>#Q0o˛$Л %v163VIF#]3tH6LElJ" N Jw92p ؼ5(Pک*i/1%(i4cmҰ$V՘SZeG b&NB遃TM?88$ԤIיDF: &ҮRraq[%|w͑L)VUihA0Ѥ4)'t%"*0I;Xh*DFJ#@^F&(b- 2JQCDJRZF b z4`tR2ܓ߬.Gl>ܐϺupJXTlCVg3Jl!֑uvWZ & =B)SAJ-"PCힷbQ8Er[⃰w7$ HihT^BL22n)h+@+hdZB5Jz{̪ڬZ,zd80ƒ&r~.@wJ>rL̘^Q(^քrz !58ꡫd_/q1"(^z9;ԋQ HkA[lQCБ߰,ig1qIZgQ֖,1O~5'DP (0ֆS۩]@9/݅i,tl1JwWy3n HsG6~(.Ă -Tk%D UP ]11e{C!@$ߐ"h*IH%0{]v ^H|i6Q((@n`y@*|T_'.}b`}>2"m6V'6`Za;| Ԣn'QտS I:v-XP-zq-)I m"s-$ 1;S4'G):WTN6^=0 lN)*3 uJf2`Bf";"%^|>;.IvX*%D}H}&*HGPHQ(B܏@N6@p>DH~=}ϸ}8fE$s\ϼpZ6ЈE$@& bkhӡ)ۆAC?)LQTKW;"wB{vaHX +':N;cbVK[51Vqe8;ʎ(/߷ܹTTP5ͱ!%Nw{>{?vY^q8;f+YzATPe r ^lT t!OJ9 4GQ />!>oxYإHE:dFc Jh|VaM+1@k+2DC5E+!]#uM0eYIs[e՘YbM04*qYl͋7pa* 7MTj{xOf4' OgIȅr8#5~#qkAm2 aI)P;X%@ ѐ^]1Ya{#'%9DEt?# "!p?/H-I3㉭h P6yvyˑقP̌P([FLgle*$i,))*M51FLZPEi0hs5k1SPi;=;*0@e )F0 ssH]`K bU3mUb了7c88ݖB8~3;_ חjq+j1$;yr!.uAe3L}#l\j#`I&KN̍)D fq#~YBR!^d12@B Af3?DB~/'g<0ۙgd5bSMQͥ^>{*,L ""hdx4|' b&\ f ewKӻ݃QuUFEfK53SatSV$N܆ޓVxC I߮jɎWTC |.||=ߑ'dgn:i9XgM ݩ @.(:lb^-afgaK~Q>6z4^W[5ӞluӔp{u>e:`e܃`H'H/ "τ-̪EӦvܺ:sIۢEQ~5oKB2HUmp׾ e )iQr/1T*e!T0BlrЂ6k" d$bFVF͵3|dLCyHK<3l,:e` 'z17"!vH(+y J3ttBE[-c:~%=G<=Π^וֹ]~wn`)n[ }ўkuD("J" 4JoC8ċsΗ 7+;sna~4Bv8UUң T;]qE)CXg!A0_3G9#aV(s:EAAXMb"epب=njQ,u";h5Q)PKE:Mmf%#zhK`]]@86FO9~FW[Fp- Hh(D_o:c7wX "|"t\ضwz>]wQa;OC2q/F8X 2qD" l K;ŝ&zRS`Ft3KrM8r^]vޙ&5mPӂ`,yf8(^ÚM2k MW+a|1%Wj!:i T!KvڪS 2yƸ庬Y8K/uyzx`sr/slhmdprV7VLD^0NQ=f'h6*Lѯ0pP0`)zK;0z ozfc&5]ܻ +hFTjfR 9`cy&3aTB,!<_ MAq L2Zu,?Rp; `ZwU(1]YX\ %T1")=OCq@@5AgfC@yoTW/{'r_CQiiC[L8Uke6plv9n5$r@ǦlMi*FM^'B`kD1ujDXdcUx"%/IBj6-6wЀw<׷wacJIZ%~6:k7x\&:i*za4zX+5lJ #v (@3/ā:-aOڶ*/ǵzb)|S{xxv+#%L$QˎM  sP.%yU,v|1VDZ>8*шH 𐓢 J , }_ =(Cs5ch%ՠ'#-˷Qa^2NT1n@$px㻆Slb"^ в-,g0־Js97Xݔsnncu- YvkU`h:j))e5w!j$#9;jNz*t ܋Q^Riq10[ ۅ*MKD<_W~9N ΌߛgdYzUHuLN6W*NqF\{v׉G*%okH|x~'VGsFjB*P$Dvp^b$c85Ѹ/ tc:nkwr =Hۏե뷭B x8g<{/pmw<ǣ"<˥h7 @ S0PUM逖 Gyj+%ϦXvb)seʥZ&`8'SB"٤`+9BM撇чYg!Aq $UUkR) J??I\'h{@5kVd*FdH9BQ1YY(&Lߑ)98;t:r<!a{)`QKddI<%L 3[2]3TEActL047D%BW{&E~yF( mB7X_!P!AWi>$VL8MfL-?KcTkC}!flHB9/˦A]qmDm/TBQ>9nNY]4EMKDN(}#VDn+%_Cnd+/;BM幋󙹘GWubs$8ܫg3{/6kgw׋2R:0ywMïb M@L!:l$<涝Z+uhEG0yTS rp(|<<"CâSzocj([2 #Ə%Ѵ6dJp.QJ*heW[u9X a_Xga昝~wt|0rZ|lcϊi>nn(bhhw  |MC=Cǡz;U s9C!؃;2#M;w,_qѫ 6zp &JЉB(jCNbt5ylp9(up:I M!6F ,hc n*: tALR i42v)Nɸt:2;˅hQȫC,RPW4 Y^(6G6)(ѤgS* A~ g'bZ4'pacKXNJ#LQ%w 9,oEFhD&vp9(\E/ "DAc `&(Hpg|y&??-! Ԗ?>XT/p9('ǜ5C75?^i*uV @f$Ap)cT.UPcTewxψ<ɝH{( *B Uȅ3fҭcmB(Xiч+Kt=CCD//<;"<ϔ|z8yϕ\9 QkѺz(3rŅZ9oT3"UB' 7D8m sGye8b _p`I1-ark}!17㖹g6%*Xe"!PPpjX%Jʣ*vhٲu,%FN+v@a !jtaM-@iX" =Oc?@;:5S%1(2 @pKѰlutbJjZl_<=c>ʄfRd(Ub\W=~?e~KUb$Iz\'腤%ttۯ-n@O2`U} ~"L5LbDH}+bh'ȓ) S'Kvnp=tZ D^oɚXj  o)kBT@&bB$0TTi9#jZ}(,^ xmM#C6`?w* *kUdbɠީR.1%Q'O̡Jh[ë| fRc: 6)pq$PGU*P>_Ed/Döy![e;0 Xq")/?~Go9-3Ie ͩ>ru=$p2ωxx7l|%ä(fV&~tɂAknrCpvM#7-IoA`=Ԅ(9|&D"1O"vI'5+ںF?G1$0Ū"H ]ެpQ~u KYŔR*Mr`!+*rTfCaV$X֦l,ڌ ϧx"(4'gi ^uˁ맊mц2OXs=ZfbWު*rtXx#iv;_>''PvF$!q2@D9%'$<~W|[̴i1L1\bfM.T,"!58NJyyi95{t"ÿF/?9qޮV˼$H!8V8ADE4kc $"dOm ҥY7NܧkSW_ĺQ2" :N8d0?qN%nMØaO$-mL+cLdO"&+ʯZJ1$Bm,d&~PPu% PdA-&b5Wt=;VCÇ U~{mX͵>}WzN _)`_MhYf2Ie1ԏc2Ʋ¦́(RtDZbfXBMnLR4x}Oć㫷?WowI˓ʼC?>,Ok<P0 3[4ROvs ۜ 'nX!ݤO]S t }S>w}KQV'n^fnxRV bLBɚ_l_ı+k%Em)J."1(9-% iF&9 QK򏽞C=x=oջ4RPIADm)lhMXW?2? _P0)@8'=R"~Ф]j_8hIM I9qB: lzsƖ5Ej4r<BMݿ.G'AV 3t\ d4* IICx;b(hԪ 31ќ,QċX\SEMjIUEif-UpչJa@qPq K|ت1FJ63NIDTqk8eݗbS2AEep dM)Y;FXcd0 #tВnSOqKkUBps;4HTjA֦H #67|N8#LFS;Ssd9[苠6\1̹E'#%7W)UFF=ureLlk8ejwCk_AHtzRQ=u{[myb7‰Hv= n2&8j577컹Q*l0\X(E1{KCZ &u4&tSwʵ|m\ (w$ܩ~)}feȖ}-d7Bja)ؚqT@+g]!oJG95]o+@qz.:sԘwV(`0:dIѝy_ûlևxw>&\ZF֭+ɀ1 (Lͮt4~mLYXi,hH4,rkW{{Q*W7(:$"RHY%!߬밯Q@9kVFs Ľ])d mʡƎqBTB~)/U97f"[&4 GA.00Ifn1PbFU%BR$.- 55U 0RS$B0’cH5GCSmNi0Ѣp&D$A"JH5w z-^jIeLL22V4e,Z&`(X(Mf#ƍD c dZոlҪe0rb72ba3 +ƻ]Mˮ&u'%*JFC9!uc$Af),05 +R$ sӭ.\5 `1b2 -UY2)aq̎b#,M0X3R1U ,D9o;KGVHwCj}w_p_=|練-.n BLHFgvf;Y[.)MR@8cRvàu-En_+U;7=]\jYe<9Cnn I@UI!V5gywEgZ]=r%BV!vz6V4yރ4jwi( a&)5$붥mUERVs-$g#9vW3wZ6fdxY|+byӄDmd . b4G<ûRLr1=۟nUPWѵUq+ZF[DQAJ7(|A0ZT4VaE%9E+{-T1;׎r:`֕옊vo4"h 3szѾu($VU8lFRӽ@=V)[D UK,PYpN+)DMqϿ9"V6xu}@Qܼ""z'w=ú VU@eY@.T"e낄Jf͐߫ʢ6\s ҨAKZeh{& ԕکSI*@TZk]x(E g nr3]njfXgA{hf2^MsoŅ\-ڮ٠IwR]ۯ+vڕšU~*,0޷;rs x?Au5:h>sѫKb:;{EU-!JD&‹@,:ڬBxY v4,rg*ְ6,u!\!m`M䇍 񂤃o߻Xv]abv#m]>1w*#bL uh:ClbꥍQUM V~Nڛ3U_ #v?tKӓ84FKvDW unz- 5;v&I0a I]\1ŝ6U,rɲzTε:aD~ 觇RU;XmU,#u <p{_hYTOZkz`<2͎ҷk\Nqv234%s&/dUc9o}gNF2}jUD$F^;";\Gߍyc ߍw9ZbB?eG=4*Kzm*z$5(\AUKỏuK<<Ċ qzVIw +~zyR`XYHB4QJIUׁKӽR;_AY XE/&%)u忟($dxNgSe+u)IUӋ)uJ={G IKM$!fUN&WBЖ( ̦_ ,=_K%_HFeم.)7vLTB[c7}I~*3^bГ@OACݦh(,m=Z Fn{ۙ"Mۯ q +iڄ%"H3^!l- L) @)i{^G?xSe&y–#h]`ի:6 ;i S:6 e9YP}OA.7YTMభaKL՞*(F]LeQQO\ &c:OxlTOL#5W@=*U! #6=vz*/73ŁOՐ~^a=YYꈅ4(Gbşq0|7' J6,_!^JިE\etǔ .g׾cPxt2ߵ}X[c*wUz j(_[ϾPSSqÊ{}/mt(L0Ó(e g|{e|,܊Ώ\ľnh['U^A(}r[YyQ^=Nu]wWS  zL5v85R6\.CyKfxwt ףcNB7]ۯ2KudԈ'=PG!P"i*i`.$98У%Ha.Fk4֠Ik)wdL t|}ey}3wY'&LNaF&y jƪXOnז)#>u-x/9J?RK:)h2Yq^2qKht.r0Bj𓊑^WunzwyKd$i_m6jDezK EYK LP/Ŧh1yuۇ !}oP Gn'O>?q*ZҶ,f[p}QCI~2SU?0l"'1 6$ئ?Bj%7Y^ڍ=KR,bR<7aEQg:g¦(˓YQGMf1?qvѫ.p Dz_C0c8靏c&G 'Iij.L'_ErLQBk^7fF&BkGQ׵xmntEmhd \1'z ane/VPjnИ$.!8su{g ɉq>'(QjRzN\;t)?>hgh5߬:8F]P/RѿI:quY|U~'7D:0*C\u=Ɯ+}Q(40zߴ[p)gm77;|r1SrNըJ8XEIu  a`Ĕ:V@XU n6Jz B},F7Y^xY p{c+Ts!K^brQjuE2񁈌X1mW;sLϲ30]Ä3wVu@~{Jͯ=WK[TLSⳒaIIh@Y$M`\ nok8S|Ktw 4xPaA ߷F!Ǒa[ ?;l3տgPS8$oSsdq~Z5u5Ý4PwJ,u_/z&I?ArHN\B۲|zX'NӤKd !Ҹ&'m7ɟ^umUڑD(niY6+VO7̫Τ" )<ƺqHKe N?*I7casqi4!t.aSnNj7g98xH{pڣa"T3#h|.b된CkկGհ!DAt\ٙ- 1ͮ|WO4!F6fXBFP/O]| 71$ 4|JڢE;o@jn7N_~E5VNHyIÂY$i}ҢWucjUg&_RُJ߾FJg%IJ~O|d_Wt6z9$f2LǟOy㌈[-4r΃$YYΫ0VBB 5c$fb%a3+ Nۇ}l`;k52yq$JEHLc{<&N(5Ļ,TaqN%֥~5R6#c[@ :,$ކsBfђ% .F֢C;D@ή8 ~h)SUPXkw-&ke} P9sIV-g!UXHJNA#;cKnǗ X|!lU4Z*q~m2B騯"5A6]jOo46B77Y{ D_>Yj14?}6BnZ0·Z~bP'+$&M%<Ӄ0 ,άS%#(خ5cA 6_vI?F.b"Lްv]?f=w;p`~ RvGyz؁.-7rC. DO/ =@C.u\z8"k&]f uACcl aO>N9 ˺ƤiHvߺ&E(xYBZj+KG\xUֶniDZC'p칛CQ(JK7ydhiڴn 0(/~;)OΫDPrig‘02u?9gI!wiUľ &?~`>Μ3T\׋ZDWZ}T)|= 2ksU\'B ki&Ih-^U^1_66o<#&݈Fk6|wP =*vK'yrN8ywo~pW+A+R0dBW)"mx* }LGl8叶=9W2>[F24Z3 H]@m!&QxQeKGG:g:ާtאQA!O=[SzX9ql(P$(pnv!|P=t`x|ĤA$.?T{v04ԯħ-kf,gX>`lW7Uq+Ⱪ64G%Gϓ&qY#2^gΠIZQL58Ln¿Ug/^+TjAC?ݗߐ^[]ѴuAaYfn$ҫZ|[ l.?_?%Dp"!򦜕ȲwrA_m~"sZ|BJc"Aq<\gH>1ӟ/VdݓH&SANfC"٠L.Hc,qs>)Ra@$jd,H6# t5UƖ&e3 UN]trtx>;\1t^X;:QCnƜΨ 'vå,= +FB/-. 7ouDq}9{s3>y!lSl{Tʹfqݐ^FoYrTÏycn̅u<|nft $:B/ˮ-/T`8Z܏#ޑ9˟*kF wP+=(`pN!"dWo[M1#~z?\\1u""уDyo&>\wh6l>{jaނb 6}enˇe Cb]3kh~BAL> (Ή:c0$.x{z'HGkMX[;:G1l ng ]F:cF&g" ̚ D( (i~Cx!R]:zرugv1DG>P"~]ݶ۸|3;Mj$~|4\7]&wSg6MBߚ>j!+s|?2(OU?϶}5;Fn%R5蠈+og7"FrV?≉Qc}c(8g <h&FXu+cc84p6R1++$ b%cF&NZk2/pގ{]*I$tQfq4 ٝ͡.#~̬po(Q"sd $lFQ.ѷoB-mjr4Ť&i%@T;0Mu[?#],Զ6ݐh,䧹{wY;51ڊ6z8JűFldJڟ`x KbZҖ>+c,LI$-,X m ){8ȂM7V9m4N0W>P*Im(l I(rN^ xIѓ .}' }@}L /vL{d.s/8dcۗ~q2;]?~&+~C$6 >/Y2m,;U%gk0'j"!t/LIfCv+Є2~(ʚ&񞽢shYt+yqQ<9sc@Po]Տ,\6 ,%%.!s{бl:✐[;u%'V'6y8pN0C׷_Y)5]{ ?^2)%Ma.+ɱ\APpL;l_MVКyҏ*#=q\J! uWTp*J_6S3F/^tl] f NQzh/ PV/&gO;avFW"o5ix^ЏbO(Ѕ!3HT!;/*A} ѥۗ^2뙮m%%rְUYB㝒}'/2,c -bϧYY8IgZBu ~.'5Q[Cw$juknjw8h{+ɼIrGqN?so1cl{gܴoh3ahx} R?Y d`IfKP9\A N"~Fd3nծp%F[E0Zv,ݦ~(@-fp-ƻ|''Lg~ ^m'Ghusat0]_7?}GڽI=#4Ϙ$\th?F_}@/8A~l ʟܽͧBlw+w$%Sif˫miNp6"W_";Wr ㏹*,@Ku!UGTSqz.Y6qV5[nAC,U@/rF&G .fSKxӉY~ I>&<H֘Vzvհt8@хEf<4o)oJ~\)Z9]ý]M9rBjlc[cawwI7빛_İwcCx,hqI>[->5oUZS%vWٴx9z2!Xc)ϽBmxgYA[hc{20[Q˳pmh'ovo-x]a>n65P z0Gu>q 0R2/(ɘ"?2I{7S A a  J.q6ұm!cJlZiܻϴP#ժtahfZSvQ|QLIܮ_Jj5܀kAL1Ue,G,pF@FF/mٛ.\Qƞ\_B_u!vI׏|<ٲc L䤾[[)*& ޙ3W0χਹ>rӪ1QcPj•W)i1 z[}Uu ͤP(+ S~/AW̵GH h8\8XЗk[XxL0?RĩRRi[G/*n7BUnoϤp {,j};vJNB+䟣7:D}Pg JN_͛ܛ&yLU2*ghMƪ$'5x }O ބPt+|:{JOAV92(T,z3sNEAN>HEEDb@Fd*@v5$$ 1ʹL,|4YaBR_׏ $z׹ 9GΨkR|%VC'߰+e ~ygv;ۻr㮟(H߶(v=h߅DD' Dr_?Pl p"-٤U#-WE. ggX17(yqt7΃@o( i_>}T)\6B "[뼹GSwASU׮-p)1=R-GL49pݽl՜[9-x Y8~e^ <""|,Ai!Bm0* $t9qtx`ċ VKRd7'h <ε=N0a*]ѫyCJy}'r3QGK%*^%nyMq+[s(L#T@rRKzPKV3rGR'`.ňr׮(Ӳj`30y$y'ecG.xCq[] hLN/`_}R /1d2r,b3CP Psz̳`Y8b.t(yze}qWбhV[gǂwgϒOWF>U7EAPƧӾ/]Zz nS$S?nY4tv:|k蹥.׿FbA:j@`;[~1WŖ|A^~$Ą` &}/Qs.IOdּ#;OD _|/B_.=x5~Y*gX¡X^B CEAJۉq5FAf/gd{҉gXIͫl 0p\'qT|b-.вw„g+ bP$>Ks%?pP o9> 5ӂ0=@%[)M͕2{Zmcu^ IX]ԭ]rpQwҸX4:1Fzxoauڝ%i6]B]^s|p#"򳞯-7.M.8*!f J~US#i|&殯+py9jʜ0|]w UGO_ bĽ@፛aù97s赍W uLfϧD?8Rẞ~Vx5|q^+#=V~|9Q_yE{TQZh׺ߜhffHeTӂ(-u,`>$ZS<ʚ;XU^Z|;q$jj9QPGL{_Zab;zv@Y/g:hyp9{Hs4'm(W]vɽ7Im!}~ӵjRa ebJ@E(ؗ,A(> [Vmq`Tl00̊2<2·o׮,(Qo9@vW' b0\ n:uN>5i=rI><k}^Kɘz)X ~{[>憺{km#w5dY%1 4j!黮u jXB07Q3%=E,ށ-*yW4n¹nTQrSImkkl&{+*־0oRdѯ ^x8Etuy)kv\J:tp{_Z3}{{;gl'{P)$ UZ2A&BH4 <`bsiY.N|VO7&X@&2p\An<|p™8T]e}H@4Y3/ꄯHHAʢE PW׃A zŅXgnCnY3 Y 48ǫ2=\8W f1֔+Q(5!UTϥ|d5| LEO œDV.EsCr, 2A0\\=Lpʟwp| &]Cj9MX+C@-'[qM`\?Jbh9ɽVm4^jƂٻG B ÓnOѧ6Oe|(]P %7aE߀z ~OerL[wňX5 3qD dZ[K 2rѲlTTbcInf28KHUci IS֏.ZWJ >RZT#mGgZ>^ŋ.)tV#R%j+kSt zWB+GfgPs.L[3~djWt@'D<3bGE?,:L:Xr[̈t*oz|Mr;IeM֡ʮM}g{I xT&*_-2M5߈kόUޱkLt@doƹt{k2̚ޣ)GЊ٭O-,еc2٫ʡqNO)sgi>Lg%-qtګF~`ڜp鬓ŗx̋v^N.o\>Jw9A%Ynd=,\>oAՈIkSG;՚*و!ujCbtF]gӣ0B6`vmY)}Lo[,[[^ {`i>+1(5>˗ns$yG"Z40䌁LW.s]3ǁ-*5\x(O>ó}lZNjp"g962B 2568=vݾfO4"5@nMY( !$3-k.xgeýciuGݬLC2EG|C(<1L*DL}gdcz}@vYQ#h<[R>k*ȣU$ ҥU}xCJ;|߻GOQʒIH%I# pJcL~#*>,SIN`ɶZ!~:Ω N!(b5$#b@f `Dg<(#O^@J03z,i0 \i0kgˏ_ğg 2Mԣv`a0mn*_ޣMg-oZy}+lHVe i*N9!J5DD)øeG">\ܡaAⷲϯ6v&TJ̲o׳eokWWQ)20k\ ~K! +3ӣ@RP>,e 8F(¾l[mENo 䍎 Do;23cL䝲Sn:bHC#Its~t~?_wGW-.pr>|~Y?scFSRl t1O1nZċ/5Ef:g`5  db=MYq(mAb(D6o͵/'U{^Լ=,WDr/W4hfI<6el5&om>l2g謵zeB)VY/JY_<*`1S .2sa`D0넦/]r`]ӌ* y&FѐR2H0‛Thi4J@z=S=fXSPmy2lg8 Ѕqё H*4G70jG[\܂YtHIJ2GƤuct8igX}PH?#3:5"0Q|Dd)Sl-avF7/ cRLN-tS523yh-lbn GPFyotC[bt4caBgD: KR0iZE:cN񨽯0R]"R&''#4V4X`dVMϒ5#038 !%ʧ'fROrԊ D1  (5 U4_TD  nO 1 sպ5vKR9_3wL&7wwsL`$Vfa!^":@K \m ra3UKFBBxp(GP) ZY| ,j(m\A)>R 7[ Xh1^*-"*bq`u)1I#uK,oa%Vf2 (3%uʹ m]sqB3ir7SZ-^qq*# }(鈄g.Fw[ k ::"K| jr)&ty%I+AYke0]FԨ -ZDLLKO5j$ Jc0ӢH EϘib㬮R}HFbR# Ԥb5hYJxiRx￯ꁆfRhKa7t 7mC?"ƅ㓎+dQ2ei@Njb+4|W 4STJPV7&;XC1dj) ` ʕlO=xߘW%׎4zvMi\ݐWOA|O@:yUOI'ea~ccVC!WO]Rw_|K5Ǘ*qႧ¹v~z"9_wYPW[ P2aas[G^eF,_-^&:j3xaQDYI>)ېک` <1)cT18$kVv@"ic0ETS$}L_>!nNkVWfFhR5QG_՜?$PaӦrvKtUK_}GM1,|Y$ᄸIzFVvF0E#)ܛ?Aw[sI?ZX5LB"BQy; &E`0uBd\M}nT67.y!nmv,Y6ZbΕ]5Uam`:UIK`"QȒ!X&\~KQxTQiC}@z7$j*ZtMOB9Ftm)1-g{/5ǩ@rO"7tHxZlTBYDQ\sB5Da" CBN uwugN20&P4NCݽmqLɂS z4ڲMoQFҒʦ4Ed,-( mHlmD05.!B`6k?)PD$q%pRLqQ,lkzq\.Zԯ Un)Z ʆ!^W_C BvyOϹ8,*  /=>l/n9t8ytVwRX˥+ Ь @1YL.]i3hYD0S0m!!Ÿ Wf?ePBp-hErã]e0صi.f\MSi(]1\p֢JFP!MRT"V f%FQNQeQ,Us8:Sp8cR(,MprqVA"0U^Kfբͮ9Kb 2]}A@Q` DFahlJq-/&mj7h,o(tC[tЁg.Z8hv E LmIV%ŵ(3VO =7\ԦJ*`":eT(GHG&-80h3FĻ%7a+ZEcf k!ϙXaΈNws~=?ח<ۼ]JK\"[sy.|Cɽ)~G[/'R9}kִT¿>.:\}_^رC,k_I7i`MΔˬnߝWPKy~o%!/Ǝ;>m@oB I!+(Kuzwq6WXk-TvNqdԫu8ћ:̥묐v]͌v$/Xo$!B"-CBśa0NSɄiQSZAiEQ*V˫i$bx ҡPEPIj$\nkSIkFٹ6mi0´ *8 @&ʎǠP7CwD7h Ԙ"thw , u/C\m%cU@$Yn[UؑK#z6KW̪B(+Ck\o7;_ saPV>Gk$w!n9 BHȀ9RbG,T~zF#y 7;m{}u:]WOxvXMz-}?L)NM]Ɲ +N۝lZ$'F%̏NuNRV:ta͗4Oz#ϲ|uͭB!\'S 1عvY{PdL.ן!sc[5U]2d2&wqu$$Ҡ#zA>7z'Ȭ9$pBՓ$eQpfNLr}oL2E!>/6Hc `w9Ċm IS4ɏ+HXֈQTa%H=LE){)nk$v4y(eEνfe[ +khloȸp 1A1V%o SJ_t )&c5%'I) +J&" ^ fq|d !~د].&sa!aGxը@e8DCľ"Ʌw'XGE~xԝjA;ٖwB8EL'Ǔ. 32"~p'AQ…˛^rC1!b2IH9]@-h[ XԢL<η'&Dy,rw<ŒMm| tE+1UsߝA+CTt(,J/Q1Q}|w|^R7zqV( zŗxBM] nsq;^!«o|gϒ |CL1at:f &?pȩWG޴1x0F`p AbzZE]Q7)%J%}嶰ӊFrU*6o7ҍ]R+E>^k-I}z]pJ"Տ$<9pe,0_nJshKj*Fp1  м;M$!$2LQ߄$ Q#{cWq?4t@g=P4+EK((ۜ4** &R"Q4"z lf•(0zJ)>eNwEE.dO=:sq>~1LeVSpxꈊt(fI)vv30kɪ 6ch$^)pNL.v>K*GK4%Bҳq=i_&r.޴ty!jSع)Mܹ)vrs?!pޅ]<)ZEt=5weE4Qw ľy-<rEH (GwtncY*0[`i}XwHʉN}ܥwCܸӷ(wn{s\҂"SDJvwb*̶m4]˩(UEnK!=G=R8uA879Ҙ]*dgrøM2E20 ߷ $vS9|If[9 srG9R*T3Qs5C7VjSl֮<*7s}e =HwnWTTXiQAMԥ?-K_N5|C|v#J)U95m hvL{֨+Xy1f A$H$dނ*AV\e, |^vĂUCl0gQm9!(U`?SG^ OٖLvSb+{ICjw?^-}Ǥyz\尶qsh EaYBscXr,\KF2ҟr&DQ.r}caE[auWqDf%InUxPs%Dk<|}bSSBF]l() ^# @|S4E=2]3n("k֠˽rxq1c(TY4fTWIhuq99ɼ9<Rw:{g6x!EM*se, / ړi]Dx?$UN !3!y`W/A<^$$=HCԼ չDOzj` CtP#We&r ?W{ē0 `ۗqɞe [8 mbB(!Cm; Iu82v(K+#Gsr.|?'Poї{ť/4L6FZ&'09hv@x\bja2ws31E"LMjsy|`~2pPyfut`*_'.P& d1ϞQg}mH@Doy23&G 53_« `>xgm50ye Ϫ}~4}q>pMFoǥӫLzAT@)&2E6ؘ(@ͮ>u @v 8,Bi$S&J%9u?EFki\, c4WvQhBԌQQ=r,-2cFr(#YDFFbӕv$ Eo7dםIKnNIrq櫰*&NጢͻWn5TFd=q,Sdx@uq.Wh_:6Ź#N (qr "("hZ)>9ޖ}_3#QAګ\w"@1!J)wRצCHz:0:SIsi Cݎ)5~/hW>,>h(a?rv hY&y'f,3(+&KfԿorm?׵4LVe21LfLQ~BwLa%@QAbD4Bu*\Awu(5'κFyqhŊbRBab(1"Wv$!aѪ^Q/ J|34BPF,>^Ҙ$4d;);Dn"H"✞d2RL`4M_y֖F6>ogJ|?ᠪ"EsFzX_'UZ|w[gۍz$99 dejT;x|pfn÷}qĨ*DQECGG%0C6p?]{pwBGί]/d $o~Ϯ(rȱZHM_s'iFIXkhxe#@* Z1hHIW弭rTFbbtFv$ؒ@?$z Vt@& (MhbL E!jK@h݋=^Z-w9m{tP_ξdL uݣW!]1bI)Wҙm? Сr11D\-֐-bca@ Q)P_c#'#n"Z3m"aAnoi)i̫=S+Qwj'pH0tPRHU? QsK#\drOL)%~=5ǽ|h}]ٸJ'YK I e- *"ye\ )R#IW0ߏЩΒu/BbNb]vK &Z#f`>e+ ;fQYx߭)-ѹj``Fu>;vqzC;PBAAUWAެ+sʜ>JPpq($׫$ 2RS@⏖t'/ UAE=xp=rLf|LkĴOmcJC/gj61~ 1hdtͣ o&0?&~R 0u A*Ok},.R 0.S/۾^ `?FC OF;!q*AV'_-ɠU$E*1m.=6>1vQP[A/W&|M"@;m珇o;-*OYPrqȅz=AQO*3xϻ)8)Ը{~rե}xp5'іy1oYA`K递A(j #1C=W׷פ&z3ctͶ.҄0s‚ ? AvG#ʲsٮT]nf'iq.Va1T%-c~tɷ^%|hg9珆Te KEClz Ѽ/m| iYp d>Tw%y ΆdQ=Kn {f he*"u׳iFx2$"s̡6)1a>_nӠ8 %]Ls`| N̠FgΤAVp`IDAp?sK۝'v$}~a~y#ځ~,} #Q#+ DSԔvwo=cL $?~|=7Hs S}h0z]$e~% sFcH1BAnll0ZA<2 gITpVV;cG:$# qKXe,\-C 5NJi]Pu#LQ&-6Ub}l˥m1jOW;5ܡ/4,h1_WDKl@qgɛޣkijXtLHKyD{ys*k;) CS YJB `(1rH=gPEzw XFD ̓ 8AEhƤ4dJPb pwߟ|KcaxqN \-.ETtu ٷa#܉4o`'fSXK1gbnC PTķ֩E=ǔ?_z (DO I0 d7[\rdXUDmp%80ktiqN[r.0t8_L"[m} ?CiڙDA;9Ep tWN#SW7 j9Tʥ"* F*(PJ9(֊-[Yd*VɍQ5)R$\fO\9=G =kSut?@P Leh2I+ Đ>bi;*?J^ﶝnnLS| Q=e%/?c1x6Lzc=nsd\*]e0)1⨐ZMK[mUO8Z~0-M@"l?>?/Ch2tQÀCROɧGCv{fI%I"l  P!%v^A<=,'%`!{--)pd +޲h@Wⶺ j>RT!=#ԁB}=JFDGvJ3j8@(FtO8׻t}*t E_]8|~Md1bZLʓ4;۾p_H`W]/Ve+֬K^`H݉Px{<)/ttZS^6'BewgO6jۿ n<#o.ن@ebp(!'rTd ,D evN{;~H~e^4Wwx2T㊤AHq H}4$`dJ1)(J*Lޕ!aH,GQz 7!ϗ֬_6!8nyS>zGd8T|UeUJ4 dGzÇ"=O2y+ d|dY}U<h 0W+gM[R "bC͒/=7F=ET)*ਦ1YmQ1A>)~i(⣉ȼTG- GNZ0W:: bۚxBCNٳB*y5h}'H #r}&@qkmgm߻Hį «BތĎG *<ݝ wdTMЎ=K3*}U #w(aNPy@{;IY;wm/!\bQd։?sɮTbpvvϒOǷj@E1vIGDGq磘q՛|$9,Cl\ "&*ݔB5%'#ݯ:-L wYJa DU,XRX2V,a * > s.w}=_{<4{w;!:c{}Px-oí3a~jz˟PJ2 se?I mѿaSϼ`{Eg.)G"y" Kih&& mQdkhƴFZ-EX1U(fvP0 ԥ!)|-i:w)ud6oh'¿]'n&3գBD3,Ì="`(&w=(Md>"`D2nAD](ƀP Mӽ}@@!Aɂg_lK[vJ3߮L 6GNTa(3u0#ź큉'jX#-U#oQP C*Lߺ?Ϗ9+vP`ELi\ 6mi>PUկ3 2?YeBMG C1z[m):Br{ Cj= 4'c943yG( "3}O#Nt/֐`BngGHhQB, nR`I$NċUj]ҬD[cäkN jiTn0s)m[XTh5ƽm?A@ha]V~}O*, zMmHD@k`=5P "zz~mÙ'ubU? [%XY$j 5پY۔X|rL l;vi6Ml 4mq6RB{i0N O&; =kmtQJI+9?~W==@xƈuPctk󍠌+=pA7`eղ9yP'? L)GѪp b(,9cc`e鮟soa v 'H9˽=CBo7zH=%{?7Msױ$eM--P~i|Gq'Z=B-{> M (Pk8͔dR,=q#->?f?bFqp^MG*xëq2ڼ8F/߳16GJޑ"82נ1Rt!+ J}O0M?NLE0Yt`Bs~ _gQjp gF.MY+Nش& 0P5H. :M煜gJ*/aT彏$`Aߧ҈1Vte,䄘IX`wZ7)PT 5@F ;\||8r2(X +8"hP/' (GG9.2L9.Osz_7$ut/t­^&=}ۖBZlذB18Blؙ:e&&We! XI#G g|iJEQպ5PCH1*uRaN k gzRn0l "U3! `4:3u|vWƣ>|fKofm`rMh~wb PTre5pf"`6Sa9rab EMO1!IpV9ϘEƚSFQ JHD5Ix-\٠R$|uNĄ#H_=g98ek"b-!P .ŏ_R*vqGoEWduZ}(DZ )*g룈7#HeD*oʖU#ݐ c `xBvwIӝf)ZaG" v:HqX؃)@ToQ|5!fɘ܈ 2jSL0݊&Pff@rȊy=ZdccC U%% 7u.gS4Yv5exͺۋ(&Jk3v \0CZ+3L p/#\߅$H,K}5dTMVV(sl9O0I>#Djg'ǻqۅ;xZ4ZY-vȃ9 GDg,s+NN ("AJsn*4UC iNo\.-L-[#C(r>`s\nJsx+ uWČ8껋ҘpkڒOt'\>;=T|ꎅuv*?)X/!ye˹mLm2b.LMBL#!1Oh??0WYΙ?p2t?y7{J֣Ӣ/tHBP>|L;;w8깛$J(mr~9yd+)6k>06'Q;'|UT}ބ-ZG4/jښJu Pg^]?h%G&BdHd0@VS7ڻܿihᡴ:TDH"mY?%fgᱩѿ ^z"n)G'|m+HC3KdP *8(/Au2 NXom*OMmŶێL1UU ٟOǾ}gy̓A{S횀k?{K;W֝vFb6&;A #7@ ZUY7 ۼ "t{Тd+~a?u#U-U*UUUUTUUUUUUUUT" UUUKUS*5TUUQUUUUUUUUUUUTUUKUU-UUUUUUUURUUUUUUUURUUTUUUUUUUUVH[S:OQ<?y0r4"J?7j3)y5zI62;yK g_G4W[a0K~&dB?>tbƗ49EP"-D("@E|~XL(d+UGߺebUU)Y+HjP2V"Aˁl:6j zC5U̓J,+Ji}ix`]ǞOb•^v ,FZ%1S]`|zVVrƓmc"*R~Z|ڠY)hF,X"xPx?RgS2*fEBzkĤwRG=eٝ2΅tI*;Ni n6 Æ 83h p3bwǩ7ef> `L OOƌ7ٻVqϒ=~+/@4ׇWt;BrvdDa'2nmKg3q"xG0p1 m 7ƏwhlfRq_7"˳©-:*B)e@#bXȴiiDA%LSF ݼVTT®X e1(Ihz2rC M(}4Xė]^!{Uc7 (%n hQ%4X_Jr*fr# fqr`4;]ܢ?nx=G LCJ#>7 _5ƭJvfUn{^g4MO׿< m< H}eД$#wMMT9 8wMp$hG\/p՘RUn#+s-a\:klAZ9YI ׺AWM2z>ip &' tKk(^1 OiF_'vP4ѐrB>a5: ʻq.Z9\yjI8J6؋QRqp4O"D v+;@1 "#`W<ƌ#8 t(̀wXف'.'vYL8Str(PU:n&)JFiJNJJQ";)ΖW 1R®4Vch˦V厦M\Ԕ]PwpZL MZGZ VنJ=`L{w`<:RQI& ]'Ջ.x*J^͘՛5<;Sq܊pfڹ?ǦzG㧭6u#y%KqRL;{4_y8(x@S _`2CR`mNSLk1 9\-+u,aL <$WTTMuH|Ab/#w1/t4#q,K?|Y~z~5n'ޮ\(:!YQ"U*tݦM.]IS2X;$vAx|ɽP0FA) &A}ݙ>F-N":s`q 1b(J+߁?{CGl~Bl1,Fty\=\%$@&Su6L 0@3dE,6W s9UO J8j"BoW?y֥ON-gՀ{&x̽-L0_R"+`QSh .]HFSqz%5tIQHRu,<7xqD`Kժ;7+KfΦ4R~JN9ˆ  7I&e+D^fH9Qg-޲*9]M,cӤ5 ( Q>VȂIb:.$FBd!{l5 =cyIM!I.l1XૠvԕPp%xtM8I%Agj\nB V <՟ $64 )3< r2SUJ(@K-ƪ7ÂglW5 (cHIry6Iƺs)3r߼v*$\T4M uԟҎEqY{Hc阨ġhĂ(Ztb SP3anRJ[J! DxycT 8Vҵl$rN*g46W<ɭohaVwEt9HRA-mcekP3\TX!w8aPㄽh|sEdh-- n9fcĻD C 5`!XfGhgWɼ[)8qѡ]#"%4.+劃5)ͩg]5a,?H\wX&?L"JXd\a0ukMPƔ!M7sb2q#>{_⣮ֻώ Sb4?x&訤B9&@闠B:Xmn L ; Y_ZR͔͓:=cz)YY,v`@#^PRvI, LkI?ZԦ =fJSɃ>rs$Y#L2 P"Vh)4 ݩe97߹zH/)*d[y]\&qt,U*)9O`EEq$pX̱ G?zdž/(. B]&9XكWbvٮQ@mgt p %k1 y$GqL@Aq9n`|W>( !| ,&ugf:6B<ڰK:删c&sp|,!{z5F]iY-kϊRx.:UyQ|`z.%%+50c(2V:>v:hUDD٭BsQYW( DMQ zQ4sPv`dsxaq˲ڮ.沭XEĬEɃƳzk c_ )#NEF2[}+ȩvfÜuNX}X;! n(Qx0y(f#!A% WqIPـ_(9WivE$!D.R{LkY$*j!ڗjN>?r@<;}{XpP,]_/y ۶ \u 0 "(]Abզf2xfY) e0g륳i&=H\䙍)HmqhAKN n0/eVwg8}'){phB8񉃌]n8W>Rs$%Qּo$TNrԗ_355Jۭ?,FzӪu;gtR %h^_~TPrZ󷊰,jd-vGۍ%}zzDsc8٦ݵȋص_ 'ٝ)6x>JPV Y^@SIB@7/zPS]l P k݉i gkyecrsi"Uxa(4D[b$)Hj)9ʱYA݇b[ݵNJ́%,rG0l8a>g/7P+t5IGӃ$I&+.V1?,C0"%D^9e!z]B !м[dRkILyN#.*N2|Y"c9TEDTP lufoGdyӸE8< ů_=|.bІUT/\CƽJGg'&|Xq8j]'õXCJ2SxomvDsCGKޥ|tDhRŔ/Uxr&oFP|p2@yA\nOhv6bXTl@yȫpN[u7X pr PaLv'@Z҇eYtMM KQu(&Z7Dr P=QLxOe#"p9 G]U8:6lXaf~#~M ~^gn5nAFky۶.yV)o*f/N/X.aU+p[2UX*ɖyKMl1bZ: eKLgA|5u`2lE Ҭ&rwS9섣jMIgGD:8omwvD.^'<\z;~Q/g:AJ(2X `'sjo\|Sp+^!%QJ+4.2a=o}{%uZ}GIц,t%tbbφx[ݨ%|].fH"CzsF)SHEcIN3FQfjeZ\EhޔyX N^0sve06vB]2^tM<"06Zi㔒W̅>Q;f@jVAm%h[M@%-!((7^7|kzvR JfI}KD<#('">JBX?ogק]4-R ;ԁB++ 70xFg­ZqQBOaAƠˏNV`2楀%)\#l1"'\D4F gl@ TuIJ yklqdXT)H[e3]Vƙ;Vs(% PW$wQ'0J:GڟwdcŤ*qF"ܖk54]?NU&YM 8 U>^[o8b?4僖N &}EJ%E,M3d͏!@d&|CF P)epBuŞSTІ yz'SMr.pyzBm߼PfS~ҫ2GJ (@Ԫ'ySZ⩚+| kjqOr,xpw z= 9 :NˮQy 4 桔4m h>pv8gcSه xؠiCD@P=ϯ ډB"91voueL+!C3@td 2dMSA~"R+t@\aiK"\Tuf?ᔓ0axu"%i^i;yZTPW݄`!*צL7ky7JGQx :E'IuW\u*՞q[*)PJ G-Znf6lYJ+UH(\+Jp})';gx38Tle2pλu3 ΈaxNTYFJ\2$X!SGP)+%Ib!L:YE!eқCBhצm*۵vw*wx%)WkPXfMEcL+k!( ,P7sg5DW/ i- A@r DeTa„!k@fUoԿ>Nī%yK6RIE,#|fII^[qmcT7TO["%L *lQ0!vmɘRxHNEΟⷥ=g_糖 00h*-:2.tI`W̔ZǦ1Wy_bb ܭ2;ͮݞS qvvg F]6hm.?*'ІJ.Vغ[eg.x`wWt10D2!Xɳ׼.٣Vڭ7/T) Μ}:FOe ۴9DӬGn. e]3q&/clrh@C|(7!zaE YH`$?MǷز̀}A]3:F@$zܳari FUr\e%$N8plP(꼜y/]:v3܉DyɘI(uζԪ%MMƿ֛Dh녫;utEWm;~(vVV3.+G;>\OB]IjQ*"%kAd&@ v8)Q ){0:z˜] \)՞C6C|ȰZ^vփ6ixH((U^ OR\bVw;zr읍{I#ҡBHVҰtP:l-*=j3~|+?>ʅoGRu3g\LV'ZX[:2˴ ;4f@g Ox!~7ْXIϺkx2Ӛ,yuͶ`~#;L¹v֭Xݣф4l'ȡ"J" Ќ{,¶q9 K pfZ懥zyj 2?zb#bP+!9X4<1$@eW}wK@B@{@SܞBQxj R'Q YzY5%|WEc‰I8HhEUbz5ۙ:uŹ"zcE0o.,dK웅gPj&0[a!~`6}D&Sa^yEcdF äږaS7 n"n*x{fKBhqHDC@aqi%ngn:?sqI(HD56qM1`4%gXp j ؋}ɰ041OuNn 'P@Q];O'ʻƁ˫ fG^xF~=bwa#FX́J\:L L!"` Ol-_xdR ݫzy0ƊC A QTOdE=B%_,F|o5{UbGrTq to^ї@#Oddk@/wI|HE vozA#RI,rb$0 (^w'ŕ4}߫o7; 1nZ{7Ү#J$'yGxb %A@A{U=tf~C(!L'Bw2(6B^*GgJy' 4gĈR^ݿCdU Uk&P5+Ǽ!3]κiQ?cPCuIm,H vp*-. 5u- uBxx1J  `@a;N`u#j8RH#`}?e.u{g d`FƔB ӧ_5x ,}(c |:RyNץ`U%FDWx7z/km_)8)Ƌ!ȷnFBhyԾԆO& #9?ד4QR=ڴߚb N@" |@MGU#~^9ڽg[J;/Îz VvBx:}[-(i 5X[qka>Ɔs:4Ol_ wN{v46!us wI5Gvoq', 5eN3:yt$Fz@gRZ7=QpSjuYF>͠8@F>#.D1y<1wp3 8$i^Z EkcA~q:D{Egd(J틠qf6zƻ# >EѢ ( .&iG*88eHR?CVLkW0 6M2n%E/Pp=)~|!UɢvfELFInb"YSOT0*JhwoTi%C4~՟Riz4~]݃ɕ;[WALu22`?u/3qF31n\} 6uwj~jBŲa /) 2X b>GL$A6C4P Q|g H(Cpr0uނrM\HUF)8/ @&$ף&~vq9q+ K߯y P v" _}uFwaGm2eq<0ɐXyK JC'Fμ0n-`,.Zs卐~h(q!QbybX d%1~g86Z"3,L=gՊ߻> 0idj0)$3)M>t؞M/+-=vSuQ䀮,m9Q @ ( mW֢c3͵$b3eϻL=^1J>$ f*B=qYgqY~R.+0vamؠzP ,I}6zaCGtf@շ];74:H *bF9QKe0wAuVP2|̐ƫ[8ЅD (H{60sPJ!}8o1K۬/EA%p%aKI3ޭcfed\ŵ OXA fO`֮cd deԌ<ۙ.D9YR.+Tyj59M@KV(: RXkzB"!iJ@>^]4.6RjË4"JpX GJqDN2 b(^ "4$[ꦊ4XOY7^(v&TPGC~ - C#laN;Eky3!(#R & @k5Sj:߯`@|Z>&?~  dB.@([诇۔, pA{j`YEQbg*zZY?wS hPKphZD#uƅ~*+E@۠Q nXZUUU?~s ҟfDmgC`6|G ?& H!y\&GFKp ~_;gi1XBț%.bi`02(&8}c8o+vaC"$۶C',C&0LDpJlI9;It识`p#MCNFH')'m0kQ0|sk9 &B(R$!:l#ӍQ ťynpa@3_4B@6\| δz?]{3s&8RQUu% o\e~* @՞e@`pأO7 a9`P%J#:Ͷ$ (:N_u cŪ9!Q߳˟x# 4{1Dm$0 /`$QslZ̭oʧVnJRMNأ| :vP|6AJ Nd e2ԺK&Ʊiƺ%#@w n~c߾\",6y^<o"6ӊ2 Q 56FM¤j!qV= Fe\qa7\>o嚦5Me=Glt.d^f)bJߩiYq0hnx8q _MQp-e\QGo,n]vKpyJ*Ęgww *)4k 兽l,4ujaz3!J[I \ xmg&W s0*^έ(4;8-&BީVC,p,0K8eJKݎPGclL/Jt &s;2Ր{ufsIka(!´eMgc(] q cS}fJ g94kEF6Yk(C~09ڑ[H8Z3vrSyaGė9~Nfz毵ނ 3ʑQ]xF*aOb-ݗVXLFu\eVc X.Ӛ+|z-Ɏ,n^o0a ,"ьKL9gaJX4CZ39<&khQWիZP +%2n6Q!|Dm,Ha=%LA"*JZqۀWYhm K8eVI ncfVS V8!PDЙ52J |Z -c|6g@^[c랇c-(ᶍ:t>*ZIQ5I Ta/L0d"1AP̧Q\|UY,~X{~wH[Qo/ކtHuT.k턝Ŕu*h`S8Aު83JQ }߉Qe:{̓jIkUo)+3rXJ2cmŦ=[Ǻ^ݎ_Ao#!;dXJ)o M=lV|yH^"! {^,xL;Tg76'\N:Q)nx1񠨧!hV $Pm(61bl:4ِI#Wi8k3b *1twⳄum^4d r0ܕ>%CΚR=$CR`m.tD @D|@-نʝĄS2Ec~Zf)`"DwqW򘇕m*SzGɞI@hr`U-6O;}[D $VEMeuNChcEAUL/d%\EV»vlW3W2lsx![ej81*n/_ZͰ ( BO,0qOJ6kdžCxCqCۻ ]ےL}IEO-jH8$ 5i&RmU #!c}/}Þq83&2{YULBr|_G3Qk^>:;`#qA+H ¨y^*Qvi b sm 9qgMM;LamuuA {K ђ:Tkf-)7pca5PdKepQ2kfb OzH#i(=KϼB%Oϻ+mzRh،@r_;0q']P }hק5&m)x0-mTel[wiq(WSKW"N4>QEe #hd(H wTQb*.XrwCtQvc&0d,Ĭh҃ FN(IǙXګǫCAPJS7v*Ruú,=|aU ZnΟ/>Zg&\^Y^=k.*x8A… |ho=nSDErÐf$'ߚx"tF|kSm>" % |A[˞?N{a%*إ}+qr(geP\;-j0;$("(ESiP,&IrR8X̋cCI˅?|.}7٬ajMw *UEd5f+@ z`ʧ ƉE|x-!#E7E\ 1GZ8jl󩧍ef!k^aqWS r,PbcoڕƼUX vEhZ1x6xS sa Gjaζ4=C7a(Mv^BֹijIyJoSͳ^2d޾.~\\ft)3V-;+z=b&o2@ABy(5jiY;oW!C52!u;tvb7C[M%hu`V~v}\1+Р:4 Ijk`5(D|3jF!(?F?YqXC{("m((m.XE3ړG)oPYDxU% ~Fi/mq:=l+= @Pԩg( *b1@kk%ݾHInDK>6jFQuq` %&TuG"0} `Uux)%RTWUiR6z߀AQa@`Uq  >{'_/ P"Ko!a%T( /o"]0$vEׂ}VV{8ȀHH$_er5*ɴ|گru`569j%|}b RH4)5C}eIo! !9"t̢IB{mEQV mS<E6];lF+h+!utC]vΐ@'~r*2_m3@=Pej;[/*|囔Wf4OT7yЩej+KIq: (cbK;@/XQVD5vDF}- O pU.v\*E2;18-;A?9S0V"d"~ٟgYvMiŮ H 性/sIf<,/a@YT!0 %Z v Esm6~pͼ) U40!/?=Wgv`#h9NHQ>g++d^A4t hzyoeo;>Vʝ@%&dR!/D|ӫ_E7lQb0 Pbn#>Ͳ׏+TxqhO>^ ҽmx;nل yERVMW!3'yr2"H).H,STUv+nǠy?v ؇jZer$=m̤P,Zex~wY /E$u/yzt t H+ @NJ"OOًA2`ö~FU>_IXRzs#dj:5D|)uwZV;eD`(B Pb`Q: a#??,R0ke~~G@n޻'sILߥz@n?6l>[Hy/!v}@͙2oZ<_UqԴi;:Oɏf鰄ƔϦO jg_3?_nyxw@{ ǵ,TUb< >^+z~9_\f9X F)ѷ`cl8A;A'ekMP?}SC7) tXb'tgb Sdfu-aEyÇuUGY_Wż.1Xxt@4;$݇#{x~94a)'ܟ6?fQٞNl@i%(9w) &" qf&eRY2xOL4QO2P?|(һ(3pp_nS{i Z5[Z PWu(ӈd-(RҬhBʅ"WLa>&!X HHa!_"lpĂF"hE$ htCXS}waZ<Ҿ?ųh\J'鋓83:LWd_nv"bűEii2`$S*+eQy=tw$9 * vBw'.HN(qCh@vD78xNˇ'-n1 N`;G(:'Ȃ% Ë ԛN.^j#4Z%P!!8qS7o&3(>vpژ=vA-?eF~?DQK﴾;ĉC0@* $J7$xھjŵe]wK%a)JH",kV[ 6hŨfYѨdՍlThшF!Ϸom]m,@>A}8!F@a.a9 Lzc #:Tf÷]MT3P,i1E͚$QTX$yMcFI(#B8"(4\E&0=,?  @w^}ђ$b\a3MƉ >>Bs4?6,z9Gs7MQ?PB,}Vfma~ "+d5bj*~JZi  fHғjT8MMmI"&Á:[ JD($ƩM`d8Ca 4C4oXETvQ*}H a?ɷi.<D}|}RQd0嗦fpX#"\Vc=uqTx 21fQ F?'{PuO+h;;^pKQ|cyb='TK^Ї䇴CMV uLE}ݝO:$`~R,6qՁ`tz!T83 ?TG)u_JjM7h3,8lo  T1v̇(r0,!ZL8ܺmn2fSh&Hv6(ZʆR{536-uu|$.o\XH#h6j$lڐ e%:fٱ6aE!+Nml5ё$B"㤠,x'Az8Wh1} 5'+ͮ7f|zPvT]/]XS8-qPGUi>lj,M g}Jhp1}a m8i*42w ?9!eT=R&4?)O5HN((<(A +n2B@r!~lE!䝼V^Bv@<#Su.rs5IVk+ČМX5MMߗ,-3d5sF~zB+"0o77|)B:DIpka4i&]'lb`Sfqp1ƣP-<'%s*ɼ ι_vSBRA5 OyY"@ur@6 m(!.8|w24AҔR BH&wW,.JCAIA@r!4@Q!:E p a)IDm=% P`j~!j);ǫI)R`h gNPpe"Q!DIg^L|=pCLpmjDNJ2:jl~ 05D0ga` @lXMP:`_Y2j xFǢRnm) Aps%@ A"V4 <Ѷxݾi .8QEtgQ@G k>m[R)=kؿk36PbOb:t>s$Ò" b?MM-S<܉dzyڃw| N; ۾cv_A7*L^ib< Q$IrA:PGrE!̰<H;H2oGnx,:DEg密|ATyB.d#QaLw6w8p? 'CI=:wϟMwCW!",󧣋VNv2X7xǹ]1;Q-0uE?^9?/(>W-q;D4(a]spIeF4 qhGhK6*b 'Ϊ)mw*3uVDۯY,53r WiG6 J s2q,S1+BKCڰD =?G!>b$k@ܚ%0\@!(CŦaԁ:%oY_taMY7)l$ꗏhtbsDRT,m.C;}%'{hZ''-e>rJwy@ A T"D Іu ~38DgO@}5~~28 J{FFA$?ѯ۵y"Ob ynQPNI(6JDCPp7 >ЎnA?T}Ý|gиP#^egSf ݒO9+bh ) Pvp=^(d1*EVϱs|!2Q)#(R Ϡ}I>/뾿ApH:q6%yubN'w5w[쏩N3y9= &7t 9K,(7rGIQQ-E@1K8*Bƕ>_z{&nOڻnN|r}q2&ڡՓ0=zheysI`ZS$ Q%|ړ0+04I2rT|PG)w㻢"v-LyrO[raźLAS8ܩPL9CS Ma'JԀB!{Jk$:9 ТeL7GMpCd[,_MLto~O (q允e! _ݱ~R'毎6 ֱvG[%!"̔|,o(\^-٦"(7dɒI&CukUkF ~σI]w>}3v2 H'.y߿h qk={Q$@^{ w;w.:diuQ\INfWv1,F Ǻ;1E?e<7beǑCB3*P7g G6i-:_&Xy>pzޠQ⣉ gSJ&ky.>/Fsuˎ{ڂ{uшKxhu67jLy~?~rWnyϷcω^v0+SrNh)l*iu,ދ<p +cw) ,QT13+_bSl1e$O02\q ?c`t|ԛi#%xgQ"xrY! EcA]@fB$BJ Eq?eFُ8^iRAK84ItGC՟_E>#h=.}3I#l󶞥>$1lUAh1%0,6z\>`G ĊJjBOfe }B9קȂ3d@o!T&̽F^i.9Ue<%\Z ]VzWk; &4م/xUSi+-`_]1KJ",u2(ˊa|_Skb8uxl3ocgrȌFSc ZSBՄ$V&X<; Hz+%fK]6մzfʛ;bNQ ;0̢WQԈ3LyḩKcsNi_c, \E Xc~T3^g$:a&pa1EޕH:@xKZenШ b$Eԥ_JjHS)3`Py#k8z,8NSOD<0ve+T\Gd΁n [+*QTPt*{D֤@mP{ 7yq;vt-*/K.:8̋abG x g_h꜠p[N;O?XtϠՈ neX1Ѐ6Q. y`aa11N((F@V80~+5.6bQ# q8"(lwG{SЈYvx. ;L.K3(9ÌpB7vhr9oGO}A,3dj]P Ix1;NJ3N~).wéwBW>LɌ#td (EN CĄ:Zr5 ^u2ٳ-rfǔ{p\%g%1^mvZ.'̽1nB:pqy*Sܱ *ʫg>X,!1 Etá)W!nێ%ϯMw~Yfs? ?t֏J𖺖O9f=jc ЇݷvӈOÇxڱiҋ G @&4>@Ͼ7W__N [a}I*eJJC`Qu>f_D,^J2~ V=7%^V<@Kc(uOk1,,1KסxԽ: s](r.z1ePSy= +1*vxQ`w?Njs&1^Є qQHfp$(12]ٯs!Z^ GQ6[ .7 @mm#QC,V*w[BIRH2)Z:S!a!v1szZ nY_n-"LQ3EȦ4WyϬ )VۣZJQ&B8fkb(JPf˻&i/^ޜ\yŠAa鮺mL\lkIk$k{XDU}֦N X!{I쟮W{^zFIP[R =`6P4chFM1vcr"d0aB҄ ̈́0v=4*M\B㾒ϴPy,^G2#KsBd%,s/ pvs#%wR.hB@ q"քM &|"^87-- ֊LڪHL> EtÉ"|^|DIY^q{/[N,ƣ+.COg-lZOâ,Moyq_?=;9.ϯ#(O_VCˏ?.ϿĤAg$uĝ6f/N?{P3P~gwaO">!'~]wk_Y羿~zp-ޭ-􍡾G^8}pmDLܯGt{g;F PN Dp@o@E`b@g .trg`$-hG./! 8;:08PVXᘆzL=E;#,ilNB6ThJ'Zx᧎G>RNX$O$E=+q/00]џ^~2ulFUȝՔFδi'/}xOСu$$4^ģ\-xvGO~Q,JVB7 @\˽^Ĩ Im^Y9@z"c ?<ӍT}}ʟa}*~~?{˟IPDyU0&"cltb lI$:|VL*iY:PŢ=mm="=Ǫ:u낇!Gp=8#dʞ[ٗ7zǘG};vlo_7N\ a!B:dBYwϗAin,@;DipU/^Ŕv#e]0W]L0y֪^/'y@l˧>!d!h> M'kd}ڙaGz㻎6>l6aN7EvbDҹ!M0:k>/>{ý)uH yOWފX|i^C\]rlܫ h@q1ߏڱ>oejm2>KQ[ҀM_vs]",9Cre;`:eirxWH#&6.bm+ jqj'=QaRT(C1Ji tJtP:5 8o_Н=4}ٰGn JCrqQɆF2[<ӒTo$ %Em|`22vVto˓:S~Uh vm`= qt#X{9?4D:hh:?%5}lnyy~ݿoZ"@$@=|.Ի N|}6 (DD|>4>csCKx]cRSݲ@.ȋu_<#=ﯟi>xI4$3 8^ssc<"/[ 8A KU 7b59vж@~  ^@&SJ_+^G\Vէ5Q|n"_7l-*!A(OwN@o`G7#'<{7ƀ_7j蝂Z{,<ؾRG;L$-0TXEȑbC.JÛj~7 EqYm% 01g$C.1OVzhIaTݺǔCX(~_eN}IG(9D=>@>á `8Vbq tΠl C<$4 > m`]I#_[lE{AjzNo8)DP)`ۥK0p8ُ$&.U:e$x"wS,|?e-;hc~09JW<#\vA+~ -ut:wz籭}QGH^~:_0_jFQ`ҕ88REPML G}QjzAGJ1|"ԋgm]AxuRF=½bb4/TP 23[t{ <-u߼9FM&su7a!!W8^zkUsp[{!=N &݆l@2Z*@ C*MLCJm9FJr{(]}|h۔;< v^E1{ k*va=>qOc^gg9*/=9^yc9ta14vfæqDqjxQʼ-'/9Grnuiçb3BS39'L m<niK| +ŅF oMt;I%5"\qLJˏ/?1ٻ>x_/W4 1'J`1/P"x!A@@Dcòm;tY=x:6]^ZE*yEM^;},CUXxSf9[X4;'6u5I>*^3x͓aCL堇S%Hd}р eqy^8FZ,a ]לz53g hPjFGgyeʵf~y$ Mمv+kP2)SeqRqH,C $F:8E bf0NR7Wf&2LЩ>b˥k.R׺;\yL?=쀴<ߧ#r(b;-Y)*Q ɰP; ʢ- c\B˦xЌK1=kqq|]m r+'jMU3Z4-Xs޴66!OuRO" .݋JՁ"wRpV/0\/ *Y6jQdE VSSlX{bnT([ډYDǬl}֦sYyj"'v3ibDvsJ#[ 'v4+N/$#qvSXTNŴ<×Fmi4U +S3l4Ϧ9s,mvrQUu!=53\wZMz'qe,lM wL^+!\7"?7:WQRg1`˳cR7^𝟕,-aSۄ.^u!a>1maqmFg0}qlpxqEqFG>[뀯OtA$M pw+ǰt~yl =E23eȞָcgcE1uC1Ql8a)c_#}BhMFV[bLFMKkŴ2"Ƌ `LLѲZ0e BS4LHiMdDi4dh[MͩjR5ДḇDS2l# ,ЖYbfȑXP"F*MeS*2d(hFjQE""jYh@Llc,Qi6&Ԋ L EMIFc1bjSC%1IC"imJ)JBfbd?a4l2b!Me(bГ6%bmXbL54hE(#R bƒdaBf%% _+R$LdMDYI, d@رQXƢ6"hoIIeAR+2CݢưcC#l(ZbZYjMM$_A`5***5!F&h؍nh}0 ?QGFhQHn@.䋰ou\"dB"W(7fRbmielkE%QVwckޫhYi6ZI2-+a+ډy  =\w*vk>>q r}11UcP[MER,5$ƖYa!( T #?=;6+(A1 ;.އ ~‰W? x ͘q/G(X72mDr]puޏýxstx?#Y1-O4q1AMvыfβ +zva-X@>͙¤gͭn 1Pw"R)5{U3D8\;g'M#DiHJgF6Ӌq/ԟ~F>~ƌ1?.7nKMr_}uš?_b)7ZTsM)F$]v1K޸Kfś!S21"s:|QW+qQh˳DUB䮜(0DPAܼCD2ME]xcD#7&Aь ƏB*I]Ya:֊a.̓'NC`Rl1&L0Ѯ1@㇝_\ 1J4@H8ە'flF`ބ뺝X e&@l xd-/!)z׃/DBS AHHF'Q|T{@{-p/q@J(TPXnS[ٵBP!r=7nyԨMVR"IA:a~ F" Pi8r`u^W6N$ =v;Onbi1+f\Pڹ$ ׀9lxLE 7F>F|QAAn~zaϔ0r3N$tWy17F@|=N]]]]]]QNO1Tv4 6uDA#Xz:cjSpN@!s͛_x#aǛ^)g>dY{$:@TP!tN9mrEϗpDF!e![Kw1}ӷ|ZDnIw*7y*&Ig\m' ^xTF&y׋MBC? o՗(6kW״ ;BYpL{_Բnּ2KqZƐo%Na¸Ue`X H7?=:ZxF„Նm`nJQ//]mPOmG9X-|EuMD{"ˌwfFg-=NOțw =|2;;#MTN!jDaT#ZQ*P_ކ,}:/^sïٜp(6@oB L%8p]D| 0/#>úǸu.݀?K~= }?ՠNCvbfwtNs;r' >qHb*[m {~!5oq^c !G>^ua@w|GbԃRKv:儧EހoTIDOEt߻^-pD@^9T1+e TW >"aQ`0c>Tks:GѲolv1Btu(rTy^/?e?Ea*$)O\ K}^Yme" zp!"<SY(D߉<@ 0jO&#ݐ>FpРgM|]4L-$IBYT?0)ÈӦA{' bo6y\a\z1IB($/brD"?2'FĆDW 儒3 Axg37\3O>R,)*AbJL b5US `6&y0LM+/tpYAI1wX*Pap+C S56ʧp0" &Bi`r;qt~|}cmClu'B6jv_,'O™Xn0R"@ @,eTe({$ô`)2(Xʱm ZQRR+!CBYxP\m:~ߕɦ-7}i)|]A5IAF @ ]Y'fnuPwcSDKb=R?>/jȌĤF"bP+) ֣! 8% Pn 8 A(xTV@14#Ff|xu)։D ,}g#a $e{g}fAoژq}>] <%CYURn$8"94D;oqd=簇G~x}~H,{bq~t4EJP9~38@"C໤6 ߃q'y+ H_k8j;>& &Q)х&+ rK anHbFSQ,8lڇn*6\a*G?sPP8$'?o ކ{e㽼r=TOF>f֋Z`ߖCܳv҅:y'P]߄~!W  /« P8-څqhk|!cSo9-a5 .oz`9aPfpj?D}t~w 6 8קLy-lDК8yUjPT>uvUig,#jKG=U ܅php @bB z;oZԠoNXC]ٷsIQQqJ'f9sgq(7'nUr#3-mo֯G7̍W`J(*g 꺿xDQcU'ͺAY[}~.-Nm;?}n9dD # Hӿ5 OϨJ yOwPH)ƺ6:j3 HYNOPuy9^w)tTNMTwSKU\THQK82F3D5!0zW:քo;GpW7*砼Ej/2 4)}@I !)*m!0>$`DGII{pލ߳#_G$HVb$v7ݞz{penja팿+-0߉~`ϊt=QY: .-Jh4٤F˨Y:M6G>=AQs0D2qT&C>6&f1Dt8?_ScM&4^8LC2P,oɣ7{C WrWHjn+{#;BV.a`!n"PV$Www;iv&' exnڎ-A@?L;,Un吅F 6R#20[)|̧i&i*(#m눧OaH:|CrQ6 Oƞ_#zk@qoHF\keh+`vEANzX7y7J8B#Ǫ1ChH9>@MqG wKml(u ghX1ϙF ޼3s-}0iCF4H(ϔ؝ٻvʎ h+e#P8>2Ґ8r{P(hqaYb\w_ aZVbU*kYcTRc@"@ˡVanP3S>iZ  gt%VVh KXՖf=|1LnLCzv#?Ρf #'r?=h?z dE0Q2m/khvmaBPxAkzFD?p<>W͐H* ʣ7q D"h-}R/!v @#P>frU ԦmM~TXXLBDRMB{!zbR0TG.ȍqˆr7b?_NOU00?z~< HQ:AÏ=%;P]$_/U1s<'nøfƮK`S$bBG_ 1 < :r< % $Sxz\Kwz<9qzEPUS {sazCSԑ3W`ko4|\:ݿGDYz$G]{f/fR> 8m`ܑ$2` !@q$Q@_ANn_7 z>7]#COuc\F';hb igo"C$j!D|sJ$jgVm%EPu"F~k8*U)k&>PP'dLuVE"P璑f{_w2,HH aȸ@D2tj @Z1=<;z^nMgQ$ Gi*|xìxB0|ud"J{fo Gni23҇gƕ7Y3P BG< ZW_ߍTO#XΉ| c+ϝA#<@"' Kǐ/[;#c~0p~5QOZ^W[5F:[yN۞t; vqpА8wEe_v̪jo&̏,E}Dz:>wC^׭G=VOnO9^ǡS1ays>6LKNL)ҩ{<w߃1EtD #ɂo/"drvbYC> B;t( W=pAG*;{3`A<$/ |DȾml,UtL5 D.CQ)6C` ]J!*( 8o 346O_T{ μD@GO|"P =Iw HGXdq8=@;BP)hju UaꂃI?'Sף!;yS.# ~c nP7q#$#6 hd|GulfܰcǯnM{S1Jnh!d=:GFz#yǹ=F0NzOE?__ЯH;osݣ_ -Jz?Ǥqglp 8H A(@4v7X͠C"1(6R>NOS4Pf ,'I{Cgb+iA)8~ݸ>\owE8:ZCAđ#l6bQ*&> A183S :BB;6L6v;$P W{5YTE3GF䉮D $BAb6 IŊ U @7//nÃ5?]'7mmH(R| 'JI (z EdTU#].S9~T!CouVrTNDDԀb1ufЎڿ> nR5MwBZtIײwwAޡkVrfeJYaG( ZWrcn]/G;fgqzfuhD8uPN vWl=y&;amcD[bނ}"poV3Q(*P)V"SmLկAoKL_!f]s (߭|nb T1# 7y+~|]Rt+3c]b5-,Z.;M?Tn5+ld 23!o6#6h̎b0Ż\un _jQu0|k4Մ?{đS5N_5ʌ(1/TUa/C^ZG5uT#Z)9*3~jzPȣNYB,hF^fyp+@ں:&k}B(u< q.Y%~/ 5J4d z%mm*Av~R&^^\XjL˄z:9I2a! j /I5X5O"E*`l㉃α`)^ݻVx--C.To6><河ytT DlQ{:m?$|^咔d13I2_51Ԣ*"~?OSS#(?#X!Fr[|?D9Q頃,8'f# e <2'>_H&dM@TdeO3UpRLH1JnL\ݩi< |O=vmpe,lb&1tZ+e60KZ3/mTʫ:#YuZ(mr3%$XU7N+xGWc\,+9%tu>KD$dY->Y]jV3AX:֚ܚmwyjF|{~fGË;zXT:*,􋁾ᆵ:g|})KoSb@# c(IB!ѻ5 Z (8@$=:n)uۤ$z1L;"V$;hv!!6v;w[l&Ko, /HQP"mێ㍦lLt%ܒ7-t|)S9ĔZ, L@SPEQG&oy=x㭅"VƓirA@]Oj5оpT\JMķ$25zHׅ'ln,4!(IKk.kQiWJ; Ù )T0eT=*zw_ԗIG̯hkC%/c:\S9H|"X㧻$UN{4 "k} v@gl(7O= i#m&:'Ȣ?E nI xȁ3l@J%!H1)@"5G_a)lS !{TiVQ Zr!(dY%D؂EU'TAD%ܜD[s`A o]rN\"=v[R(S8H@Scdq:HXЈXey!\_þQ%b‹e:а'ENy9wUG0'h]=A@=?ZvMf M)oky';BO!;X{37p dwQE;w_' g s=/Qn0!d nw;>>JtąDmx Q"dNS1@QtпwSB6Eq,lb;Q. 970ClS]/ϣ9x:2T ՄX+Z73c݋qѸZ9O%)$\%/J"faU!T$5(v<9 "y'@@Ӄ ١A v,ɆiRAxX"9t(\<`B`ek;*@6T[ nJd^%kHh C]*ė)%-fE>珻XO; DQؤPDۊN?" ~:nHn#Td/9B=$k4ioa( Q2Uu ۠? a7av=>>$f:V9yis0*hE4\bLG?kϗ)ڋcT`'$=~]wǷKݿm2<=|S|màg"ő{M6pv-BWxFLsݳ1h t~z?mG HU KR!"x2Eo뼣;׷N~nyBLBTPkS߻eCr~MD@Z AS?B@qJU\j|dNDLJ3C@N\"},=fwdh`"" $(jؙv~%)Ӥ _sd!$:VL@X<;.~7/Q}[6OН@Tۆط#q*;?}aI׳YV}rbu{hюzξS&O9)k鎞HvLlnO>qݻm-/ⴞY X@y>޸m6<;F l5_W!U'\U AE$x1UN-*IB!`"5QM5u~ [ˋC"?IhP) ˽pa;?!ĤSVHޝ)ÿlT)ߘt*zVE6-ns.!%:ɰm$#n-oJq N:y:[M &n|K4\pogW|+6b;"<" I^ :madV0g.kQnuRXyEֆL鰛`ۈ!qӞwv뵦7WAXAiQ{o|ͧpf`Hff6Iag?Y~4,C ʓ:Kh,>dMD,Y$92wH]rnrTܟ,!M?3{χoGm&mUij""wg MzZ<y oj-mNxBU5Ώ:3u6xKr" 4((ȃ"G_F_vSOi ' PWV*Rrd)SZAt1 Ojj]vW/20AxȆ0%{7K)և (7< hg iU{} u\/H-K-mw@Fch]|r+F(D2H8Ȩ'„Z , 0iQ7v%&Q|a[AGto {NOF"ަm9`bgmaLZ9qY򈈀?,\6r>gl^QGIr}VҍŞC7_R{~H7% B8Xg|^?W&M>"L۽SKby k0jG!(M`Ŵ#QM ́`yR}P*6(V@(Y68fٞd4(|I $*,hi]dL-r+b(~iIBj^Xڈɖ6ڍ6Ѫ" H&퍮jF&j"X)mcF;erŊ5@j%)}lW_ZO˛k4Z`#+!(c"Yk?Ӡx@NUc*<*e:tUMIRۓJIWZzS**cty@BKƮ􇬦E Uo7xe|{ڬޖ1C>v8˽{;`'I=kb=Oު,u\7F'\섽D$ - b,/R|kѯ4ftP`_K{~2СiŠ 0  (=!u!}ۃ =q+HEMxȣfѨ$sZ)0RS>C1$ynpDu_( c|2z:ovLs:|Wvξt#knuɕs7흼Wׄ5)fʂTDWYw&(dPV$'r?1:{h!uqj}Hz5̿$QוC5:Q*_B4D_9Qi/>H;x` Χ/aս)ś~BqKR2e9xO|HJ5 Z$,&mZ&2o~h" gU]eV#]9xqKj+RN0ZV($DBЍ|$OR$i M#-TjE A&@|^8zmzș_G1$v5Sבٯ~)mzoc3nGmZ7zBzӄ( Fd:vUaX(k1.fSSE/6fNR EL- Z_DPs`=Xe9\m ߂|bsQ)|D߶Dpqy=aw`D>7&ZϚolZ_}0!ъЇ@ݣ^涐"D,4uf8 h[%m]Z%c@͝CB (4$D7) Y3;# Q", ` m>MǾy/ r,01K""o7Juod$Ҍ+W|k^p$!^d$E3XApY QV;x)bW K:S`גp=eZ+Hc}/).$6WCW'Gx͵fp\-3=QmAiE`99GWF)A?r!S=pblLyj2l?RI Ą;GoW{j~oCeDD W6Pͫ9bfFk|CB_<'ÊCkΫiC% a"?Y3#ӑؾ@ "UM @W MUڔtH$DDeriPA_ҢmWu5/LsYuwUd5V$ ^Dq9D̥'! "Q`%|7Yn,5*Eʕbr$~W5}utg:}WGR;B6E,嶤G1LDD0ߙ^A5S m =:dσ~gFTf9-MO5U6jZ*zyս}o(ZҧrIݻ"*zPY}n75DS?a A\#k\9@ ,Ca]|,^( ށ&~q樀bjω#ddaz2sa;fJ,_d|jgȦ%:wD@%PV (d oN+YweA+oH uJ(@N]l}& ?? B^&q(AvUw 7? =SYO JCC{w+" k4mkXQ7FDPo>*n3jHy)!{}]L @BI>~*^-mvI}RO`ȓp*?ߌh$9ah<e@˼.jMfL]=jkޫ_͞a'!`pR/4zv]0cR(\8ɀc8>"{d^#6C7nVgbᝋ{g8'>ML""S!9+r5pJEu*oW)Z˹G4#]?4bE=M؝\:藾Y.jxpCDj-EGkTY-({. ցykM &l$a#u{4˜ŝЕpeӣ"7z7gVC@$pֱ]_O6$gz%F:TT :fssY*\į,@Zۆ0 )1L6'LIuURA+*wo$At̨~TV5wHJt`-sB5wD'Jy~88CYV8H1gzaASq$,$EP4!]MoX3")i3:"/Ñ](T@{,>8K/~i9@aՀG?~Q&`DaNgmI焓)o?@TݿXw ޽=:. =mуj_\>}U_n{w0{3+ŨwW0GCh$&xHUЅ3 Ej|K+ 3$ QGk]Wo"?+-TKfPW2>!ɢHAt\0l'`"hD'[H2Z?9G+/DQ-éW%Z؁d3 E.}qYȺ?{'rg GwH4ai6a*8* P{O )q~]C?W!!uPN?"??=(+qb0j?lǂgfM|ir u=mGaBq1P"iJ=BGa#ў֬u̪?kړq)'aqR|U]9?dp`=}r/[Ew"T2QWKZB{MbB~3 ZđQl'MR3W8R@Bqݴ}Q'Aka_Vb#)|dR~^fg段 ϻD0bP5Џ6̈r ,~Li-`ġP7$܍dtkâd$,@w:=-x GMypp[T;^ n>-ښrH"[; Tp%fGa%e8`SC3bC$wGأhk Rڭ֨Lh}gu~vǀQ_sN<:7I7 Bxo7pxZ =@2,5T[X| =XѸp|ODSq֟,IAT2@b 9.nO"XWHUt\aw]2M/wF`?y2ǮQ%\K=+;~&+ 3#/({VRO)~]Y>.85"hǶ8)Olִ+#,Gϓu1"mWc)@mU]OQ; f0`99ݜgܢR~6!y*k E٧ vͿxCn~åճ;]@fLұa3Q]JFGj%ӲmR'_KF~3Ka?MTqNj6#i!&ji #PolMa5Y_V/^AD9lh⣤UEv^}J#9Z5i,֥,^*ƏEE"`T$ ,n1oZʂ17].Ѕ_.qZ,E׌'9"FkyƮ&ݺOdeAγ,Q~*'DثpCKQN𒞎Ь"RCBߒ,찲NßT;M#(ZYL>u$Tv t"@u?ѧz쟦o:ht, [ 嗌YR<$Cym [J;VO~üd;;}ؼz/X)Gȟ?GGv2mTH|_ځe;!{@A.;GcD~;'"W< e>*Wk3%=sbL E\a9-._ 01xCoICݾӟ*ra=V}[!|M -8C90H:VU?+QU\:e.H@Z| ?V}3읧UVVl32XvL3VB9`\㪡Ύ&f̧N'Jz s1{:DyTUae‘Kr13ɗM&h=K6jA䃔 \a$EZ|!/&4YR?ü~5JZ =ymN.7M}-_iwwU( ȬD9ѭ2EJ 'K22N d_ 0'e{ wEG3 !.$G]CB9eeG6i*Q ve.!cws/}4h/"x&TycÉg]`ՙ.W+}<o2-( S'[ӇI yNdzG>Drߤpa8*o*0d[S.CIBFtpu.SNyng)pJ&w<N" L'O>%RZucN6c+O1ekMӞj{t, xYIu^PJ%q"%-:( ʥzx =}3/ʿYL_A񵢩=mR,h;gRe&| ;c}'d4gC{0-9/Muiޟ_P}Hu6K7ӱ3U5p߽n@A4k ςb>3+uSi.5i\0"Y$L{v#nJ Tk3:v5/3g(T.`7w]HƍnM7`rj}#ՌLb8AцRsU kHkf7?W1xy fl{xu0"j`cwީinUNg=]?6sߓ>MG*b֍ͬ"f%£B(`UjdIJ&mZj⮦P(-0|?VlHJ }}_>L}-hBK^ Vg`{qQS]kޘ.'{ɵ,c_eBcb,C{a(,Voe[xIjM>HV=y>8lyۿ_~"^TT1^/ޭ QA^Y"+݆p-c'7Hhxj9_On"DTAidx s!11{(^+a!^G/LZ`AڛH|H&?֕MV6R4bJUҦeр?<9@i3q{2D@F~ 0HBNv-XJXL'\~n=@A2!flH;OrM[̕zh(PLU0d351Xj'vNXt 5їZQ8 S710$>;eHNn@IЦ ->Z`l14s@H EA;;fT piU A0IېT{_(r{i-&4]4@ouseJ FS~n& EPhG|ޡAN 3,#~^q-SIx  z1(IBkMZ;H{&w3\M(j4 @kxоwrfea%4؀(!1+ %&* dP72 NVCV]FMseqYIt^dDN&:N04cov rCD Ef%SBzP8G "66AP%j1MHSyhMN1MhLf7 sȿ >`P{5v^޳^JMT1 ';S&$\f=|qN6q)G ;qSB&ڡJACd8֤O}[_{~e<"t=@^xA}u:uzb6'P}MrȈ_Q /58A=|;jU؆))J':X;CNZՕ'lnS]?JwFz'[yHPEzDAs?7"=B}?5!9w;3"0+|~HT $-V'SQ|]_: /kO/ }GZ1ovB?@ñδK͢$sؘNe{ r=Hvz$ZJ;F DJD{8Fzٯղ?@{|! lXC`=C^}B Sm8A lNֳ'#$'rq'-zfLS)>;sq|W;^NFUI} }:8_>At ={D PkB{ 6, S3q==Cwp<_'t0 1/eML'4zO1WQ <=cbyFegGC$'D @rlH)ɟ͞ݕSВy GD`v$'ori~RsJd&6x$m'oI de,!A$ ƽÈفA[o:A0dY4z7sGvvzކ 8QK,\r5)ty`OD"5 $L㸶ADK({I3Lx Ӹ,( }zѥ}0d`H}_:;*Eπr LLJ# 'w`䊦/o =,6oe}F:b |"kCq 8%6UHw~:Ը}l"9d ;mȆ~;UM;3,J&UU܄zHËԋM;lf@X/DjpI&P7`4bʪUUflaȄl2 IMO)s丙(Y17J&BrـةgLME\wÕbf@aDSՑuH>鞳Ãqh aLTlRK ц;!2 G JrhQ R!%޲qwk ~sx\$CK!^WdvmaA*ɦH?c\5OFb>Pz.T+}unKMKN[ӕJ8,49nL>y"EO wy U֌@E]Q:SJ[` ]h*[Qye5\Ʀ31!NX&nhEҖC1ܽo+|q*;'=o^h дá &MN0X&BdP `;gOWPҋމH?Ɍ24CwG 8S>k #bNҩq+zӶ t dР}l2 }ݻx =IOO:ys'[>Cpw ʭɟV,rDD992Ol d֒|_^4-#X#ga1)`x& %JbRUTJ\\` c-DQoծ7B9I1 D':mxf=9wI=vQvЩ0?3x?t򦝨 ?#'ւzoYw /& $޿d+5wza F&wV(\ŔaHcC** %Apgnk{nT%,$NT,Molcvnԋ1T(vHcakeD3FcP]£R3Be U sCE2 c0N/>2^$'7T6 ҆1Rh0o9 ^rfvq&d &Ld&N7$av'Xn;r՜l)D !1W&%K-(s|> g/9˃3ΰqGXc2fbDWD$Ԥ遤(& W[=>cAXNaAxp/ΫTGd\AdAـv &zSy-@u q{q[gRj[C%И+Z捔uZRI@Idq1g|9AgzM* f? /G*۴ y@:!B aX Mwz۹^-Hj<0!!l#O# Q̫`l~ankv\~<|:sR<~ܡ nLQJ 7 _sqmC0ɋiz7@7U|5N#_o! 'qyP<؃ '%s ."q SrG?VwZnF#둝bQGrD<}k:pSM bߑ ɟIξyV^$a4㉔5I8"z<{=_W&QFSC95C2nm!u FN tD \}CɬXhd:@:1 $b&)&SbYIO'mȂdF-*|\GmcxL99(l : &*|`{OXK~'WpjCu`%=PJwdAG .4uC;0 OM^a/0IBV4Lw앚֍m!YYq+;wZD9"6~]>'> IAD[# !Ϩ"`qxlM8(D;V oH!9v&3&F蘄RHcd7#G`3YE #y; uQ˼;C@=}!24~\)'%7&mB>pഗqkhgGW=4-G@8L|l73'}<Ur q1DeCIO B=$[=vnrr-_#P rH P;_x;{A ~d4B~huɳW ^9|Kn&_E(S$d.uKCVXl:\nƃP1l2 LTjjs5!0 yd:6?umc,RWuw p|~l*vF3L "(Hh|G;AU;̀L:K4.&m!@sffp܀H#_Lo':yC5 }J:Cu%ꐃȞ6kGx`n4HyҚN=&8$c `tc*!1tgI8h LDC}1So']TcP w :8umɰ"b #ԒLD˅6l1F5w@vIs%KC,ѕ]q Y<ֺWNi=sIQj+^P_F3Z`Q h˜:bȑf@xu:H&)ޭTQDbDl`3SqA %v'@s٭9pО$$LyK% nP.nS}OkISj,+R& 2pS?JykJ&fyJy 2Yc`8h}y聈w@rN?V=H/g{ `kEVPcNeI}A|6Y<{[˼Cn3O.L=o[D)^F0=Ʉx %RjCZ0#Fҙ?U:"%a_􃯓6 o9AIah pa4!@޿ ~_rD0DSwO:DT ^x, )Y\^nwγ|Gc\KF1z.oԏ lO|gf#>g:x>UV[('&Q'9gx&'{/D :zA1St1a@NQ;;! d8"l88CȟD#vyz?SÏ2jNnMo@?^bɵ~+EHHQŽ}[97WyGb_u|`AJN@tzl_??1ӷ\)!NO8'=C g}]f{ #ꔧ oG;]-;=KB†t *c01}A<éwJA; ||34~w;,OqhJ;$ײʦ0_N{a))x"t0!W 2J Le%ԂeTSW߇U,41qeJ|L4k<e D('xjYj(6RMh2L ?::":ِ6_ɓ=OlAN%4%zҧ cDLҢz&|=h& <ϠgzҼv\"ِwUCPܐ1q0Wp40q;J\}+#|a ){4n?=e@UO.N [1$|LU5-֛W˫f:y%6|xz/Y w):M5)/  nH8c P|3P0 3df71jz'diIIby!S0={?t:a!hD ,~YY&49&?)7&.&2LsjIfe#@,`g0mn%C0I//F4Z⒢hH5Xs$9@Ŕfճ&QP,a Cȶ C=y !),CmL۾ 1IUE&CSy} kpvQwG~RNH{p/o$0>ϯgPoSQ3&Mj0FԊpZ1M% ԥ9|&ݮX!EqxG&T|js$FoZqp}A8(ppSi ;aTWG02ȘaSnPAAU$Ov|eq7ءm,xtL@߃1\Doq `h0h uFJrG>zLiNlgr&US,wûQl{_ ] &YdUa6 Bbo0dBaI@t jGG~gr})0ҊѨerNј#=_.8s0>{]cOG36!4bRj;SFͳ07r}њ)(e(HFv MىLL~̾:1D94=p"Bǃ妏z%7TCvA)SCXp{YS>Sp&tNa"_FjEG\(A]tT4?q ۶UDާp"nX`0Ĕ(W'r̈́\͏0GpL@=B HncmV3Hf (m8iL҂QJm8 x8۲==p’ٶ^]Ǘ-0OvFJ8% 2aDI)z@=k{Ky_$ht>Ĕth-id QD:jp@^߾G{qyCSV0tҌmp3*"3_~#.8bv2fllb?Ʌ[AmG`P '@e`f`OZtttɆ0P_:}E9dA}/Fwq 轾o~BD;X &4)>4B'tۈl7A+ͅd'DKO_+琩u\""RI+đ| pRoy9N4~Èhf|<b:I z`>>$js:b%Eѥ .~@*oC;xomJcy"稏⯷ PH,|x@DQ<>Nϟ);$>tl󻰁 CKH&,dpk#f!p NɘB3${,28j+rYU5~fSmpְob*2~7J8݌B#,:;捄:ߠ){>s;4vmR7b@y. ?:a, tHHPH8?l # & F~Q%IwAWAP|ˆp5M2bjKi!SgN3H pO)U{M'*D *]9aeGi~nY{*;qqĚ  ?dO릦w 2$LM1&DǓn4PY$qB~c4{Lе=̋J+@ u5%[ҙˍr18M80dw3é㳲q^*c80]0oQva7:CC?O9ux+}n_j9}pαx DZOtd_ x0=ṹ= lPyewD L G "Q`y^3SU'h4|&ϮBP6D,+c`iGgaPIΟQr&;S4BNz7U00%ozD\ACP;YZh`: A(QMHd>3 hh)d$|'=Rx>Jw+'5i6W5w=&kH +ɥ dk^=G 3BpA 4h sx:4z5guBP{N}n&B$Ƨ^1`p0 {& WA/ =|cx{ ~t@;;IŒ]_OŠ3] 5.)@DA ߾)ˁ5ӕo6O9sj=DQw D i=퀅@e|pT@>HAE/B4qDIJ;e`b%?Tzne_VB_vXגb1CRzi;3Rh DPOsG~M2 D)if b,P7@OI%85 n/}͂h68$=CC2!¦ |%x6ED> U!T ߘOaԧzBl`u`+oM\D$e^8e0Ĵ>A0=d40% ңCD [iŏCۦgAx%ƨp$wn`Y)nvMqN:\۪j%c,6_Ta~?v:7^N-(PI2h9mQGb^`L8X,8SQW_nWG}u9FG*&/-N<4DGj.T9p` RK)/xYW([/JI>-ZѥP :yK w xKpl,mu4nٙYUTd^'ۂc'e_gNjq!UK?{%(Scd"73+0ɠodŽ6m"hѣh4{yP|{:h55R1Ec}WcwM"jXc_9i|'꟟AψĢE2Dv>"1Yj6OiȧOV.wG G Q:p4'y4ǟjv@Ud'CQE%g=}v>pp˛:+G{ˀuM h0ǫ;uzF13ӹ=/@= ;XSO۠29D)rO1R}Nt@Oo7st$_cGn`蛣xxyۙf3Đ0!M`3 yzsjc7/Y,qc:01eKxwѾbd8 (=>etCs]]tDy2D1œII @x0"bnf W|8& Xu.9)$k6rTue9&Fד]ԮHNxwQ(oaQvphÒDj`|~Lab #b"#ȎD#w;$GlF p G#z9to=1/?z8$@a Q C$re4f U@ey{?MP4@G;u Cl:6_vhm ­T꽃312c5\vgF%eEnxi%y?d"Q"J Q(Cd {;Ӡ 4aS$x I*iE]r<4fd$ܶY">!><\X\#慇h6F o=ܧ>$nblcxyt2}qȝv&|F O)hh"@l=~}~c%ǠH#I&az  BW &|paLJs A{K>$ =9aG;\ZBFnjs&(2@O!:Mra7<<^Hhu?ԟl=֊4Q}KgM'n&UQA_" <= }ס˕ht wC;KvPEE;࿹|KA nuu'Mu6;'r~Kd )j^t ?dkQS}9OT3bc |uEyT&8ku5 R RR}]~^l3[/=}9M>$|ڮ& % rnKFe$|ηz%cCvDBȮD70>! x6nz}<?%OzMLOI`rw: I=)2" F-E!%슴-2]X2vPDTds+u7iAW{Ȋ)#* D${ܦC94aZh3+cB+y>?0EG~~?.Y~N?ib!%O>z?\!.~?~ Quć+(}s//cO#mG?ΟC\oqO}#_H/?AzDItD DO8\ P@mz֢2V(00 @>brق8#عb>M`#YDBw(2 `I _lIIOn/'YQhNg`T[D@!ׂCj< kZ&IhqۏFu~NsKl-Z[L?g{nX}OYn2KPmbSxhHRכ0X4[8S*gCϤ+gs׬:332[ B)9d<'kNAO ^wB 9'HB MA@Iϴ7M|P,] H(7e 0Ջ0KJe\';oTL ']Z,(‡"gH4e8q-Lߓ{ߚF9 P;K]󝤱HwTcHz x'C Pe{y6摊MY( c F]Jű}\y_?P4]j!5qK{ОYz>|sWӱvbIy{A =9mLaɅTD3mM V+O}8?F~7BۤSNbe~W0p83C2 C7Y$%fmd*Ԭq4Ur{@ni&e/$UU3+Q9I3#YmTDr}2:OnM"Ps1 mň64 M.1C#ܢzyx=ӃBD,I&``RQ=gkgŚ9vѰNhDoU.f[s>]@)L^ PgN;"q;uAj7 Gj ؁pSNb6jukcƆA g}P4bu]Dx8TK9(>R}k v9GQ&G(BGL@0`0Kzuz65}>$Qg2{=\Ѯl;U7za9[>1,x}x~~n=bĢxȒo0I]ű_4id$ =8RjfOڸBah8ٳb@g1<7uHH *$cBӑ'+th.,,9]\Mə!d uz`*;} 4"(8>'n}q W;l}@lπ{}DTWC{ozG=aFG xAQ!B(u@mUGO.B!w{D*2oB$(GS<k ~8(#wyNO k\SD^g|FvѲd%֎| ҈%@Jjz)'Y/ID##4.< sS"BE!PP LPl 2 .wH@q |#V FzN,|ۙ2oQwpl?@~ZQ}cx`M-eMQ1bQ73X  &!1z'}}[rچF^/9{u=g)~%(EOn?o_6àP`w tTD:LxL.<=6# ;:O̙tЦ(`jdhVos!QT9ˊY=#Vf*ҩVCP(P|Dzr7p"@,J("nA?J~AA`@mH"42DnOA=K'ENGGa ʹ4> f}a&kc[{pו|npD!A+7(Xs=f!ƹH*P %:dP;oH&C :uH.ˠzѱѽ0dr; qqsy4||~T6Szw(jzQczwxK6]yƱ]sPo Ӯ㥯[)q;/"}ZN=:hJ`zEK]"Gx @@ @ʘ${n5EQH8@ӲO1C+񳽼̓CbvCCILtASSfbhTjUb'jNN=3zflyvLwNIު׶b:g}ʌ\9(~`O4 oZBG իŞZjSJT{+i}ļ=cFIANvy={mL/XwYPM=9\&|̭0J@a2SV#v~`<{Pn!$P. l{AK& pw k,uL!~ ɪQnISE xem$0zb> @VA=3A!nx+K5X((71EA;4&P-lQ胓A>F Cyx!{juQ`" Wa a;[;|b'$q0{+Oٿ[㋒HO8%*M^8SxC3;vT p>OCCߩ?G|V^#kWd7 F fXPi g1 hZ4#yØ7ɸ2<#n3:$ 3Tn1 tG6nQ<tXFQUQ5tY"!Bϖ6NIHE0"]$2eV}V$ϦՎ.!*A=+{묘aT=>ڰ5v\5c$Appi{ˌELs90 s[-L{p=3N96ξ1>NG#a jK&MYg~"ן'x]:Z4 cmH Р=h_79PG6x;96Ov#QDB"OS~<|W"+UVZbP~sEm$AUy8?^GYdy85|l8<:_(׉`a=ًFEA$\C2s'>p. np4h)JN3Y9q|0| ?rD($Qf L_R#ǰyZ5v-Uo8W۶x/pϣ|bs!P9k4w& l$\n;>'F{QwFhdt  $`ql>|85C:7NzuGsg %G}c94kEA5 Cɥ!cQH5 &zQ؍I]Q^'Qw6aҴ4!B1s) 6Qf*BF$xU$$.e>qtKq戞Jqv5ݵN1GSǧN"ib>ΒHgG(x ";R4iZJ jq$ ;H!(WQ nnºۚj,-݅C NfuǏ%a:;a&,d4vÃU|А69 6# C @b;m+ܑRT=#~3%J:yǷ~:`ʇdV S0`,D_c7 &w4 =f ek9C)DEsu:pkpGA2C=@}|^iZגn[gq `zҝ)z,`urauOײ&y4^X_0yG,EN#.jJ0 4$HR(ؒA.]*n%NPt/0{uN(B!y$vy}76,Pل{8" >,7_+z{:y INy3 ieF/bNxׂwr9$x'<4GRQK (MKwKw3T`YJ!0>`eyMQCd}% @|(4n4TTR=u=L%tw'Ȟ2^1D͐o9 Ŗ%ã.SCm ڕ 67yU#{=WKbc#*&@dUfVd QѠATl8Atr E'X.>yv(^F۱uܠ$ksS1(`zzVGQ=}?'Fp]tQ}]W<DD""#*V5.pp9&->6^/\ ᆢ>; =w$|/Qps6=NL; Y*G%hrYPܾ:x#EA\Mn:9&KԳ PsZ,bH}vwݶ PhtO'N׻"=7C ivrz$""Eʃb.phc˷kK{gx8`d$79}H!:2 *WnS]#5/ɶ.ޗ8O}@`"zQETFwhF3D`H0w8# ͰՃk#xcqddbH4rbnmqGЋTq:"!OV0EN@`XGj$(; tW7; 4oq4&/xKۗ}`r{uz1Q5DÖܔ nb1k  ЂJIfHtdO8BO|' 뿓>nB[}V[3i!p@aYBAD1Jl(euFG{igBL }!ID9vTQYL ('=، Ѣj,2A !/) jj4^cl AI(qʶ <:-}+w)pK$_sPQw|br| ;luyM)NAmss<O{m0l2O$Qԍ4 cT-{GPw< >( `+ B'&(~FjYn}*!qW?/3HEjjxĄ.3B޵19Suc/ɡHІ֣(| DO]|{3JɑF3gߵĔ}yWdr(,K}dsx $% 9_'3d֒FRnC oZUq⁏q>ڮsے(-d"{m,u{߾Z@^(%E6rxDv6rIi!0zQ4rjl! xE5wfa쒵# 9y6- ~z`h@t%@t#(._"_@*:Co؎%(K*pyJ{! {O)Ii=)SO~ے\>p~ ӗ8oc8iBug|G'uDRJĄQ]C{nWwM|fBeIڻvn,s} 34m:١?gs~|q !nzPwgHB"y0u]xn֡@;檊 =LWԙFfTEGnjoK)*";S\l!فq<Mw=G^~X{CǦx?+R>4QQ1X$ R cJ0A[ȻI"!E"]#\&6JlIL:A=Zxe D&ɦtՁD \<^/|5T|Z%icRrIeυۜWTe =-f@& `DbqͮJnU4dX AwG!@iWI<ᱹTv8C 3gH 4}#8 4֍ydBct]0P%BAuݨ~M/sZ,XaȜsEْ()8ىQIE" }.պӈ1DS}uRM*פ? wUD^5ί}ROMb!B25b(. B t;J.2B[Gi?=j,[U83 l\:.' p~2LC<\0;( >}mΎsla^n9;PHH@j+)IHd&8ԣJIb` `Laa@*`/Uzycca> 9ZpB^To'o>" n!ϳ'@ 2K#⃀Ydro?72n'%p"BEKÊP+ʲm͊wTw3+[i&ʘaU0|֎0;gצ7pMXӈϬΜu :{Jև6X}$n)<;%FI Ϟd8/9r*=1s36@koS_OH5fP3P!4Pn@;̶z''HqV*KK2/=U#$'X"#u&;wqG8QAq3CiX I2a . "; |C~Ŀ`q#"m;c3w!ҀѨB@)I?<||N䯦?΁(b1uR L1X!L$/w skT%^QQbvjj\&j ʚ Iwv0hN77|<}ǎ~4PB@S, Ox*&F lJ,R~OpЂZ g\Y7 <d,LAXfRKu3 蒔=]Mu{'*8V{ZS4qxEB]R[\nܐ D+%Q*jFv5nMѥKFA,Κ"m6m+ FVjJd00 L7lsõ!Ki1}ەet ߏ}#;N3GE cB!ȄCJzOkBK{ Ǩ5uK ªJ4aH,J1Vy S’Bd(# e#dX|m`dG@4y/)1g GbL>џ((_g;ʶ1eZC,U+J. :)_t7?_Ym!d du} ]&%sgv=èϯ y!>v(S*s9|IYTC=C+FEB&J`7sk]6F5QѭLV-6 #01HUW!U>?\}Tı RĐ3=_fP_Y0$i&ځAhѣoSX`v8ɉp &o>pU`1涼]IXk3Nb!)Je&>\1։-$9Dz$ 2@'A+ipFG pp|k=:~ x'CI٘-7QEoJ v1Ӧ#R!Cŋ P`cZ>}A ޡ2)%/A>Nb#e!Bw?]=~Hi(JJBHb)a̦ d:wFm*z"cDY d;k'%G)\ko%h̓$7' |-$QH`Uq~G=$ yibWn redI* 5P>E?]$'v;pJTڔQض/m 1iDv!#<Ϳg`A%LT@f|<<N{׳`ڒbBQ5HOHc$;v9P}іv=a1_o) e$jERn&!S%Ul`8;D_]Fk%4 M05oscKC¦w(]&G#ja3q= b߂z`)fV {BDjRxP²(C X:*TCz:lg6|iiTAX1\ #>&/)@Hbj2 ]r*|^p}G 5$S[&*#a *iE;"T-2i4B{o;Kȋô Hd˩+RR[V T8X`#IQ2D8$QP,.:MrM9*rYdd,Ryh1X ke^XE8:!~ugzAlϠ~j>" US]CxTAMuG" G93r\tuz)G*#Z@Fu&D&Ko] b5g>Ͷ3yNd撂mm#(?f8.t:CoaA*b@: z;y~a΍=RCdC-)1@XݠpRe ۃ  Û?֡wF0vp~JB,ONA'D {ˇ]8sS!a̖ x$A!.Į7 _Gr8 ,'`"O!|rbD@xz]n A YB: 4! i5 C:p6I@z㊾B`J$ CpXD̒?V!FΣr:AjO&ifd* `l%@?ta¿W;?y|W^B0<{7ㇸ-ŕ]C=00fI]Ά { 6RXO!T dhP;sOM>ނ NIBpT9m2@D%,RBW6NC~^-g""!oq tG՗59!&IhBE{ ZJGC9;8~g8ў!ʀ>${MN|B $po 'SOilNAsF!?qsN؏IB'RyvzF&erC߆Ӿ:| &2<ӉƧ\D18j #SR(TK7{ݪk`:~ d@J,|'SUC-SQ{4xI.+fEidIKYx7L"i;L4\Q;L)4,I$ICAG^OuÓ!Fy3϶Lgr늦r]g'P"#< hQL& -@1Ѫ@DD88TF9Fyj.3|0DO wT/7v!'6FJ1"@HIcc`s(aANtZ%~'( +Ƶ]Lh3F~ju K$G2JUfg~#&:G% /`v 4X0a*TmL(8$~ TT .E3HbPUu61#t npAH;ڞrro@hʚE;'`s;G{ bI3X4jžn͛!+4IT^!M.I8kvlքqJGfS6$KA"'4~8٨ 8/펔 6:2;ߤ/Aќqj9$`k*jwBs0PE" @0f* a0av:M`_3m>t?VT5;wEo>N̤¿ 7 Z _?b`!a xL&EkɅ1! .́"xX|1]ʊ CA4665ɶ(͢n_kkv=cQQ<ā}{8>nav::7zu p\ R7 K\v١q!8 d; lpgk (9Pgઉ)AM=HlC.fHqvk8fvRʗzTkĘÐm*+#WD64ȈBII^x0AyvlF%Akw] 4^ ӷltR)Xdc@sWYII;T Lsu۹G9Q@X(qA=CIlHA1A[H'x0J2!]h-bYBG>Q %G"֪COcs+?Wzq3 @ւ v|ކ_B!=)Ї`m72*p9EњBDgth:јS+!ypHFTCIcdZLhWcNv<퍠bW ,[dG9qd@866elj Ƀ! $BĬB$ B8"b2ò K $LkFmFAU%d-5YMQF lm[3u^; 9^xz9.8Q&6QP)u5@#Z`$`:} CWh֌֖]Oo:IykSb qt_f(1ъQ/-X {C~0.zQ5+ ?5#~x5h1l0g3 yMIJ|)!M!>{10wIH,T}wl|M(A'1=ɎȿN 'éX ˶F9!rJnLNÀGpM0k-C>VgdxRb=tGs K2v3k${G{~P#N5Qx]SG5ذPvLL bA0*ivQELZUFM0#oArNjx*2.\(NXG_F|p`(']5!|G/rB!Id&C׌q0O(ʤN9c;@mPP1* $ww0d&Qӻlޗ&Ư5-oLN!ЮP A1B'xIĞDP1fff6Sg|҇T_=. S)A8I+ ~5,.дGX0cJ )eLHCwQ!\KЈ|,_DXlÉv(:ma (@lB]r&57u-xر>ZC`xd% #.4^[??/6'kFçe`ҩR$?f!KYpdnP u-F?=0!OM#Z܇Haiݠ>0(HΆJƺcJUg2kmm`U"rDI(Їئ"œg~̐NqڟOoU?)/ƿx'*Ioic__7?g/__/_/w?Gg{_|;[_?|?wy{_?Wm_!>A,ܛko1G zSARkN*Ż@ö!ɭv=EB6l+*>TP̊",M]lAʩ؈?Sd-DRr2J]zĥ30 d0; zK$zmSQDTIV9", YŊf!Y$A%g'̘F>y_ Xw+u<%h;3=h8MԂ2f-R (=hp@)L0MͶ/'ڨ ~j&mԕ1MLM 0i7 jeA&l${I=߷W-ܱǟ}͸խ8x/d]Z{tyc+U|_jZEҹoIe̶25)-D:C8In7C$ϴ_]!az26B*G]oV[%Tn p*(dZqg;Lbqih,HSOL֯) fGNɏ{5 iq`M A-uu̻R--bBZmSL5sjr].Piè)S6! MЦƍM벻5Q {WO'bpPc1|OBpNX';يmĢ^r0^_$N)wLRtQDƖʈ΢E\)ZQE0FNP43Yb]QSy= "mĢr϶CXxŖ &)aʝIgm%Ƒ oC)XB$AjȢL&PE+>[ҹEfi6O"Ǥ ЪEz= eK$@C&锜Yb"A_e*F1jT0h&ƴ;:UD7rF"J$}׋M2D02br ppΛÔw)"38XBpX f"PDAY%$ޢ1,9 皚CG rtܠ"R_[* Sc"`mSK,Hw,ʂD N˺-17ЋqFE~?4㝖ɓgCӛ&%A҆N#}xq&1H"IRu '盉Td)Wm;ieܛC`V1j6 9]jmÖliDz`ٜ-g w.`b,@lPHըK‚wt D,͝ӤCmSɻ CYdr9$Bq l#4s>웵-p`T&PؘɫO66fI}LC=lLQ_OP(v삡 K -ФPLZd/$*Pi&jxkw{*\LNs%W0gsA*oKwe#dӘOy>~;/wA~O?U!J/ghBe@(V%X~~s0d@RA EY@~Ov{yhIA[l{ڢA2Sļ0%}nsdv;p]O8`Ip;w *wiZsvH=~B!>ކh g xωjcdf:yG뉓ȄLJ1"M32T={'G2@y@""@tOhqfxgÇW;o1z:޵YZ*Ո j 4#i S}gx3+0 ;=|f ?-wQV[c恿8 f~fbAnv]5OQ$٦i$qJ-C rYKS0ES_|JhY\Bd+L1r} 5߬(ㄑ maqXϪaj2'A=}ǧpc|7I kYz;fs藍yff-z*j).TCk35K5сa[BHCAt.ּ,u><|S *,7T&uԀr'ڣ~͠Ddh__DbjO]r %IC{m}K TT3JoIvïowu== :QZo IU[W6.#ցĝ^ѥNGA1nqm0N'tmտR?$^0m?16$bP I 'G/ne?e_l>_{w6${?[q惀P{Jdď틨i33`D?۰a}$r8R1%=@f翐z;`R%V H0bPTB) FNGt2~./uwlq|TAcID&6ٹi3u"q"NK]LЮFJ &Xfi*.UL=B[!KŭU[#ε>N`8. zrqxyC ݠo=餎-z(B8ma`"QojjhDe7{p!{UgZOl6&2i#Xv0> pjpQJ5ZҨ &$.;~s]yxQfd3ݯHMe)`1ŵT9( eS[-¨@ףk^BhY_<#M'&5*Cnɭ!a[0c}~3 6ع4MFS*80Oe$`ifțvm)(@}!77R1ICVVC\`Pؠ%'*%<]ȢW86.c8U^zx؅LvuvZ_guI'z'IzTG,&S8 0xE-w(S2x~S&q"fnVJ]=?$t<^/t t+PQnWb%[O-u`m@ChE5"@ԜB=6 E @;繷S@Y*$h(Y SKEU)=3S' w zh7$5$r!EƠPAKg·4w ^V,z+G%#׻W'J].`a-0ƹ(P"!@;CS /7w;n;kR p>9S=a8(݁1 È0ȞGl7+Z=rL?.y MgX ;C:\=⌳DkQaA:A.. I_[C/ns祄W""z|î uujMS4zifz LtMaGA~Fvw3!=ir Wn2B AA#}W4ɟ@w%$˸dӞ04@1".'N8(10 ]saI $JHjp7ԡ.ѤZSP;@q p@m19(uShAڤCbpf&ХIJH|HMd*!iRIJ؆ iwDe Dd`GцՀP ٓuv.Hj}jkMu̩)BOqduh m,qxTD68J|qֳل\XJ,,3R2k4\h.ZfJNkljp_C .yѰ:ܗ 2'D4tzo׿nBnUKۛ F""ab%@1Ai*a9AoeG uۿh5ԝAݽK]rH @V |۱?6 pmh}j쩩gk(9Ws?I1.9W3I-+P>Py|j^{B֨vPnCJ!(-܌pCJF(n@.x26f1KXh%ԠLvg[DGj[rRaY^X`i93f{M^o `g3ʅI=7׳ΟgY‹6f.vϰk1FhYc,8JqqAb-ƹ}5I=oٜ<~/&’tO>t0Wb :GR9,2JhH#Q:5:W` gPayߤCɭ5[Q}GtuB:EȈ֠B=fo[1Ja* odFpj5J58Zy;R_4sZS<F>,*L&5qV#1 &]/ ߛ"GA=9U`4P]Ua8v^)| 6ةS9"ȭp檲YT)L'2(d\HxP2Eejbw{PxΨЙ/]T1(zTyj!GX wc_JTD<8|;yR#I.~t q\{DFwyϟR>8;y9fS=\qIQCRk{g%%-̮.lMWڨ!'޴:G/5;VwhBO(<إdkyGLK-r:6u᚟\sZM!u|\qqn$K [Ɏxd >2^>)Îӄ$EVW{Yvgo]T%QCckqڞ"P< 98$qIn1׿^"${r̅߃Ayx>¥D Bu:N,O)\CB#X\.asj,籎oӒzL}ȈwUY}*4Tz]M{j,OowT3 u^4RtXՙ:N50J CF--Z}[FH>̙SgG1`,tbWYLCɢq-z[NûސIٹw,k##0 { ;r۳j yhݸWcl7^=sq6^&r*ч,&Ç},P7Qd8硣H^&,D\@n7j.S8 ULޱfNK]n 6 WPytDmEL҈)`'` 0%vj"2l-NQc5+p3bJӚq:oe`wsNU PF ]UƒRw=XQ͢L%Eqs3  fzqo"kQ&͈7_mPoOrG'Z;uh$$ =kSj֢BZo9bЄ&Ukcqk pʫVXMśu gx(1æ`R0V*ahzi86N' ~u ۯ<5w|m+WqM B, u.ofŠR3Z V+I`Ws*UC :c,]i@e`:EQiG&T Yt%bzvL!^yqέo[0SiZ'LR4ncQ~Z8_5Ȓ3" ը҉g IlpNdzǿ=qً]9"[};\띪Ü*aəׂ-g5톩z6v|tKTWW]vrHު5xS"BeL.DojN$EUnSA<:lq~LάsZkֽv󢺭 dN*U#1# 6S$lӤB`nQՊ ;J7eTdu:F q?/v=_BI8]!X"Eޘh'1.$% K(Fb^ިwL\U d{ Ȍ &:]{gG^7]]I-lQꇮB&p]{+i}>;>ǟM eir^0XsR]Wdv D=h qNٚ:SQ뮬 eBplp 0^P(P2L>}r|zCB Ș`!zq 5Ao!ۏk8 Pn. >z4s^}!Fz~yrG}P{Gm8x6g0G@nC&γC=xF鍗\9םWmpkfJy$Lji1p9\|j%B eĩkb-2sQL|? :1xM) *V˙x!*gy3rOy~fG;V^l\> &1(5ۛ^j7u|v.3qkOJYtEk0Kr\]T_Dqi(1CưWbї'R' zD VJJ`s-p86 8{H`@lQ (r\/]*U3l%[e;'Ҝl}5af v֧ecM "ǝv'g>?4ynHbpИ2\[ͩsSh>iv\q򓈱+=ľ,/\N^uϠM EJsψv=PE8]ӔӺuP֥z7F\ӒV3v Iĸލaxa! ?="CFD19G0B]qܻo.8DI5CFZ6#н$tOh*p(b"-@j)bNGa@A‚8; @hws}Y=rbn#2ra @@8(0E&(,!uD:E Gqah -üs$Wtyl62v9v/cq`$ Ԡu$6ѵ/"*11^PPwR!,M9FumYFPDh<AQ }l#;`apD?qQ,<{,y'DޝYYӌq_1 HI"blb8 (w9w"r;zl!Gh<";(66N#0CrxD۩`v/"o(Q hբXIG@EG/GN3DvGv5vzdzc#lvgȔ78'S,lYƭ<sr6* P]]'!lc~;쨉aLQ  !A-4D{-(f)8876{;$AJ+ #Ao!f1\t;a,K[˻uH؍5zR(%@7DQdᴺM|m,QQ%mH֭#|B.$9 b4H EOG N{O[|5dtNk,):1vߎ)Jvq  |iҪlEl>SNFZ3Vф[ApJk&]$T'Cp="(|o}Wxt>(A0SFz* 0ӘY,fM+V %BJ q q|7;MpNÏ=_xg"\K!i,tQFB NdCQvp"P$.ExdqR\Cq$ Ж>M*j*fg1w bj +@RÕWu\(|IE[]hYW$JŇב\Td $]-Nh.%oIZYť ;8!ʭ.k=-]y/35=sW%KfNCY5{g4j.l2ݱtpE A+b5vjLHFaBjɢT&T8ѮomKOTI)G\EZ̭aR-e\C (>xs*(D@e$"@xz[c;mp΄@AUDGÜl M=-vDj[铿 邁Qpxlap"'A3Q(ď=u1>/QF&{s㿏3kw3$8w5̚d3(S E)hJŷ6Mu DWL[h[>]Iȳ3UUe ٮ-/2CyVlYbFEAn 7gDC9t aOvv*dQrd\7eH߷~zN9p۵vw]zFXBe(b62$]_%^u'įs'?)S c"EbFEhxA#b8˳zUlTc$F: LDF{; LVV ̚(`qܳIUsaY'pp!&6H1 rsl lBG,(~ozl6<է "#G(̠7R6;`J뢑9{,1Ā>?b޶DР#I "{W{_SF8WA׀N H?e!O9(lIo2zzHc vGXo<?GIM=Xd=LR4OރF߁nx|>P|=2T_ɓ{VihSOڿ{M(e)M54*,QǘY-%럳M_"V@fA4s* K:{y=K]y!p.jhZj§Ӌ(6KԨe:5B@ vsR:J!Xp,YdD\@h5_6/p* a DPKv][cޡLp% PPSoLN]|ۖ5\kwhcj&lG1?K TP٨Zc?sly;NaAEmb#L0" 5%=c Ff>eaQK yCF؟8h,!''b&(1 vb ⣲)'Wt`95˹[Y~\ _ URHH)TP<<}/Ң7/Vtd4͐P;F D|vxYHh;Y z$G =d+S3(aGvCRk?/kdԀk[ViMjcU!J 㳉l0RCB7*bzSSϡ|HrIw'.LIV5Vm(RuZ"#IwmB/!q9x]8~9BLQnofт.{ny7g'Wl{9U2^GSdj6oF)/< ɌԜyqF=.(ptN eac+qt(vN=ztR_iO.xtHSs^٪|J9lJwxNkV L0|"*B,cP9B=d-Q8 ShUwsGj{7Mujmp0,U,4KTT 1DW2 %N |xb J:2O rH-K@z qFJin{zy r*0Pu 1 $K cI]ɛ]}XB:Sh "=gЖmY} dP™ I ] j^F0< T,%Ʌ{LkZTj5*ڈi ;Z|-(;{}~~͏-V6, OnmyTHAD9dR,JD"wxK?aﵸѠwae\vIMHáⴰvuAu"L67mjf;2%0ݱ+`E|筇(iԐâ3AbVpdPq"Nؐ˅f. (/vE~MH[HQf8-$,YQtE2ǟ CʹR#A (.Wk-y[QPjG%8\(bB5D@B.J@G;toJrc=h83cDWj{eN m @swێnζ[N&;h l`DnW$*mqj!q/ vqirшh= x~3>CH@x0xsK lo;/z!9U}!nEtÅ9ѿ5Xlƶ QQP\9G "g 'ʑCv4Wl.aj9 GOً~}|*l,`^SHDFz>3BQSG҂&9/: z!L%!lg?7 &qgc} F}&2'&jؙE=gC!߈RU1z Q. W8I_Ʌ>*.08!xe@h`{nC*j;Q6aۮ%0 lG!DF1 _F*N H!BgLJBWM|?by2aM} GᷙC/k~mDi1lW *)P̉|2h 7鉡Dq\qP YLQ՜d@;#"u'0k;l=c3~Mθ8ҶfnsCsnfvkLa!Sl ?^Vۨ HT6a&:!6j-1ig s!IJIO"§@v??oG! =d6,.H s gg~R%b]\_,d/VUM*Cg?? d@BBB~[7;(0YxOwx8Q(GlڊX1a5/+G"Cue Qv~t?2YU=$6Csjڝv&_=y#TW1pHPcsƍ=<8]u0XbC< :qGJOmB6hK$cS=z6Hpָ[[۷hh:lX݌5(L\! @]]^=-\rH@8~8YNs i][arcSdyW: jeSS @dmQ֮}IX+z0J&m@yA.et&::2`ѕF@mE{p|A}s)u91eĝi+ֵӜ)1ON@lv9^bQJg&b Q/uBwf8'!M{y5ݛB"Q.hڏUŢ1Xcoԙ̉<ϚZX~W9H ;kޤ<4پJdXR !O">O5ƿ2GǤ2/i=w'L]p$mt; c$x4Dܪns#z !(|=3T9'Zc;b#D}~5drXQqNo8Nv\TnPDW&mSUusyA J$7-PQQ)hqp}$6~C R?Oj~i$Ĕ 0b2 ǣS"UCl։$&@@!@پP,0ʦ|'iA՛g~/ 'OKu zas-(w>l)>t׹K"~pi41>ȟIqvr6<1 owDM+TcU7(Hb+.k%p4_ LNCw(^<4d1[h6gy\"4s4=˴6 +Ն[2o9Wm1  dlpbF3)F 0#]&8[= F0 M{u0m E+ wrLUONhznƕ2lUv+MpOB2X2C*+^mM 2ٗ^zL{|Lx+@ i{lB &د> B*q:|[bOwmaR 2 =`th X13 R5V 0]``^lTO =]HN8| wlsxu5)Yd֌FDDL#t/|$4߭'AJU:'&qfNmHc heN̯hjytQ8UtґJV')o\|.NωwFVHlоnY"ߏM.5zԝGp^qJ]&ڛo\31UWi^Y.f4q bH|so|erd:e߬;{AK[t'RP°r +R0/8FxKsΗ4Ma'rz |4@@D$p#\= _O-|ArPiZ"#6tlC(BͮH,%+A ӈ;FPq|Kh^r,gKH o*5=cmR;$͑-vdӛ} `Aܚ9AC$!#C9X$:B4H4JCb)Dt]r7P8n : ^ [󚖓DrOGcl5)Ma3BtQm,UF/um[H[ĭgpCCe7[XR6f}07d" ʒ)8`EN\5f!ǖT/&fƢcx935a*ͦQ"ܒ C:x89I9aƃ "Š'mN"K a@ɡPTcpXIw Ihc66lE,(*.f.:DJa 8{+'3bڙs3 Uv;7#Q#a4ṴD'ShuaJ DEpJa̬JZnJc6q9`QNQ{Y] a08F Ʀ㓠Q3!47m%!7JS714iTD"$ *$n q4;&0pl:Q9.֕M@ad09\at@Q 4˹Dv@}>t\dʹjMb~V*BoL 8Xaq#0iCU !@35Z2 )uvx5a?=LHX0yRù@Gp8ϬyO.~Omi'%L]EW! }^mŽ?p'mm)(S7{v1P B2^: TDqXP1 =[,9 S8 P ,IJ̎.bP>@<)OqgL#C:!zx~c s[2yFԕ,hB*lc (Jh.IHm'RZu;OGCm/8ORHgڜn' q!Q틠~Ϗ^l0%Y89H.8'Mp vw>|([rj*1\9B34uD qFK%9 ;?ůyևHNIЋK8`=ώccJu )"(0eIP;t:p=Uя؆)_eͺu"ȸ }'@؟ 4@wo5tȪMJ)ƿq%SG4P$EoBV s]Xf;i#\bҘ(׽uv~g &I!>>< ݘIԣ.Nx"@M'I%h&o=Uu~m XY34mNdqm ȉQ̦RĂG7 AKߛaJuR&!J>/;bp.A!@LPyHד &c;k)Y2٧}&$1]Firlݻ.`] Z # ,πr8\|QM=8}t4%+~>')DMkF y˜Bb 'hWiaS;Q~~Jx/{,wSf *+9ܫFgld7u*˂b-+J"? DZ _!JTх&'09Q p/Pt9x5twIN;OD ̡LpWw]ڒ@br F-cVQAa-8KPX3\Tk͌EUբ*4""RkL ŒŊ Ve%أEb4t悅i0 nүJ!F@{L1K l3]`d3 g`} -2aժM"6~IJ 6@~yb 7x|-FEKQ$lot lx򈈽1)ud?y+%FL>\SxM+HQIn`:wGT:ߣ=?ި>8#WM-/@<.pp߇ȯ Fa&YHE(Xb&2Rb)IHʤhݸy$ 8} J-(Do՗?>ۤآ"О^̏!r2aEѶtv2w0;Oʖ[ @TNWZ3Gl*b!!P5~9bd )xa) }Z40xgj)$ }+GwG߽?&SfP~MɊ0~&ӱc|ּC\4D"Ѓ\9.ڟw&P@DLHK`g<˞~ݶ%ɠ`P QA O5P$ RSJZUYĎu5T%APAXpxtQ  %tPz;Ń*<" J* ߜ8=86S}Ř"VNn<2xEz7PȎY;WlUwwҚIP5Pmڋap{?*8nc%33?_Bz4yM!T(@;wFrf9r#* <#G%s\ Qm텀I&f(i |! %>4?Qꒁ q!ZsK/KqO/UomKkӖ**ziW9' =騦5CPGƎh^!B{}sB,]hn]xa?Lm M!k%MԜle?q51Jɤw NJ.$RLPRMؐ4Yp{ge>.ӥ Ye&/L@[6n7 mxAiCwD44wH@V@Q['*TLԩJJ*Jh(-/<=TjZi%5./F(Qub"BХ4%}hA)QrG^'=ݦX)1e @$E*qi0- nprf)Q#=1 ?8pGR]g\.YϖƟbą>4-4o}e ܚOL{{c_ҁ&#N3ޥ;EƼpuC=%{txhGA2q yx  eYef dt:]_#T 2,!1\5PBF)l -+OY>#U15qګ|D=\>IG5gㄟrFl2eJbaQ7P9~YiaVapqցw[2,A,yNק]xxH~Kq0P\Y  qE>XDE"AhS 5ד`A U* XO0֌j:jMn[U[VUFۛX6E*Vk+hUmFַ*MBjR"B G\WeEnZJmZa&JH4[*+r+5dGpE~"pq`01|99ɧN]nR $5Ha p"F'Fd/ Mϗτ]`U] g/ ACE'{MQWmC*_l{w{g1ȯ9ҁŧA)9AɯpO? ?@@t008!*j$(] qp@H,iȌCzZafiCY覿aBpt5DB~!>!GM@mwȫCs$p1-ņW ˩;z8eV*!)PۀJ.mC9 »nS92Bd ߍ@*ۢ樴` a]0 {N:&MuRi.ll=Ź8f$,JX!$4j"~f~_;}Sna!Z4xP,)!eSGS飽B%h$ّ?&NnK J1\dB5gEEY\U8cGjsnN4rLLNJSߪ/< Yn0Ik7I82,蹓^Ʀg,VS"]|ykg5f^.%qGq\zIb׶2f mw\VdNܺJ$7u]{jMt7|^3h 9WNSJFpMBV4V%e6jxWqk"[:WnN濾u9Y;\*a]L榞\ XBl&0TG(rv׺l.!O]ic_H3?C0SI>l! gـ~ ]f%BzXLs=! P|. Ģkq2Ltwp/6q0AO>Sq*9ʁNN38*'ӓE MՁi@6gVt^(40n~q S/|/ ;_G'Ӎ%;5U7FXґK^lF,~k[eĄ"gBgvȧ o\NHP.Һr;wspr1kWfӓ)U.]qqo5ʽ<ܩǖ)-ŋ#'#e$yRzsBbL [*b-L}N6|KS#Ӧ“I[.0Iq9HqF:\ьmMvd{|&`)Qٟ2 Tv1" %z=`/)6mu&?3*b֋ li&QOk޽uO;D\;#j*9mջSbgNe+H\.ðh&.,(j*9蒚 )8V.!ͦUI<{BšHp-˙î2"`$CN!œ!:ݻG$kI]*Uѕۖ7`r)Ƃ3ʪ% c"P]؉=*MeI6\HbVrI"ӸMܘv<أެ!AMi$gm)*!ZlbX'm(/CWӋZ?qjt"uBJth^3clZPM>(q-B*M1;}> Aٱp|'S )ɚ Ѩ^5(*Q-evl-ZjDl[# )*3 @!Om*cҷ1m\湹Wy2WmlK'gS }ge1ʹb ̥C[*A`S nV@r( ASRlA`a&mt v8kaqנ_Y {DbI!w;( y@l^J>Z!$ 2 mbZ R wm׸A RwQ pXvм>~Dć"̥dG}9E>9'-Q-FHAQ-b4іBxʤ%IYDGۣ|a[*`'_\xS@ϻ_#/"} K IB𒝓m_qJړ%R26l*HU6M* 1mbLHM֍$Tj(&-4ɲcj5K%4+(b(c̟"D }z1 rҘ!O>! =PϏ?)-ZSw77?" E}z ^Bd Nu# Ms?JnY߱c"I:gtsz$K 8C^#w/=Ǽ'N]xqb\KQ2 (B%Ė-wgpq>]v)뎞"N?~VԲJ&Ή8e$FZ})s !4H@ ^|zhLzQҢe(3yM.(EQU dS$[.ADs* wrlrCNvquB ԙTvd2Y^tWw_J"Y3rVIfT:kHm*R2c޶WG6b ThYE(8]Q[ Ůdv3tWO)Xb tHY&ly8f *`PY ;@h(v6NS0Sa!l&feS=ox 2JXf):MP$|&*dU+Hޟ_kpWsaHfH酘QǧҥJxB>y};p*(lxñ:I 0׆O@12"D$1(r/ 05 3J s$< @]|C!KE,x$2kt PǧY(䁣V`R~$DEM:t! tdCkg=Jq$D t5|D6:u+N}vw q߫$ N -gw7"|?ɡ'Jyu;~sQK@3?+~] hV֭w1-wÈ?sr%-0FyʉYN&ţvu>Rtk > h%pѫhǦjR>#>ޱp8[=qz}<;}#=m"[0\J>C]EmO-k¯dGŪW||GHco!C&6$5(A2sҥ5KJx˒&JN8q oIЂzTcַPW.IC#@߸< +G~^@e#D/ZA'RͭoKZ:&+z4)Sҍa`, 8P{|BYPuC5D'-QSd0{X;| 6_B>!؁QBY.%m:lĿ$1V:xU=AF$l ' gθ;%/x_'" gg͑p?q|5H(%0A+t I ;h{?;$(}EC@Q5V`ʗ_ycꪝ (LئRX D S18#v. qx"7\iD6 l?QRV sa|FB玃g:O I5e1Ֆ*9qۿh;Sˤ}תi NײmFF&ͅzVpm0Z`):qXuhJ*Ha`P\]x-1p BSQpӂ.R}N`ܱK*g"Cgӧ 2Xf$z˔ܓA.DXLlq(r;&N*DS<0aDL(ܩhFF7L 4H@܈")ƁWwSAT@USX8 D /v7RrWS<w^XZIfvE`MyRRRk6DR]&,L?i~G8 P8CF_ Y $5xǠ3a8<' H.I$W&hcgiPHN*H$cSzPL-H#RS{?6z~?@iA,H{ nw뢿I h|+s̻12mqGrn~VOM 6vT)qF !-5tHi-(!6 ݉CMqfAIϠ_Q!=V a@HĢ5F?~4w-l$I8>& ɓ>9bڱJH"`?k b=80";Ŋa:98~&BN%|nppxuҡ]i54X.WBmG ǻyƄ4UEދyǐd{[XBB(h,"] '-bJ&ȌȃE V1!!7x)SǾD-:#}K Î_r|S#oSRt?7цUelsmyfJt_\ g DE,aΩ>?͎Z"[U6I7(R1EBj- W3.bPA?y$xC }rY+=Nld9ch&䜔Yr;E 4;aRꅂ XJ<Qd , (@؊*6bma'u uq֘h (.}ӉÀ~ !h#>c?Zh_<j!J\zn0*cVbq1 g*GGEiCǰHV > 48,mmjk*rqV KnbtݹHd+,\ ,K%ˆ㬔h3[-R*D0iI(1N;U(nI\R|!y B$ٖZkhHh7%6_ n|R1Hyyw}?ΕR )?&yGc k `:Z"28x[@TYM)_UK&@Ӱ3l4Қu؂ PPQ8,͹2H [{LO> *܁A(4!.tT7qQj &fUmȘ8/R6{̛m%Iӆ߈-S_<~ h*]dyg441@vm|"W6I{ ; gRs1‚i cQi &g?RW9x8 PDyt@* LOf͠m25=HC<&˷oh(>)7{.u\M BExv0Z ]=ǫ>K BxZB"(z 7coop>+I9ϭjo6P&ٙyN `4d{CD^Heæ]  4 UzPw U] QHìM'i6$tb%H;@B`dklT|-bOp?A}{Ƚ "=?$)[a?rGO=϶7^P^hxvI4<WMPR:arr<Ɉ ,{  uc:h%>9Ѵ/.7C) |{+@jup)iSIDt=kM@wg=^ aZAM&d:?=۹F}$?HO"8n6B?Nfl\q kM<56("9AAq-5N#J5Yv)&'Gu?}j D"(y$uv`7%FCծM ŔBnd?See3T=ۍ)b L+~CKz=RC4B@y}B-p@@< 2Q3EHv;/}xIh 2 C> hOM;̉0N (L8T"(- J1!q,CIS'c0XѬq)qX_P߆&@ĸH{T8 &(Fcvǘ6W$1r"9Vo2|{2}e\~IT.dБA͓o?OcL6,rr(W[8 WSG)'ܓ{2sLFcS%-abj0ìCKEs%'g,:dO?g ($6ڠNWDQT [~wwnWHUVyh V"+s ix2:6ntơVj17X9NDN?A Sl9n_gqd;??P@~ՏY|A*F; @LJ?Wc! }Sm:5<,(nS%rt =&jpH|SjTT]M:8}i5f@)7<5U@P=ɥYv^͍O( A li G)j"1[jM R Ud^AN.8:5Wu>LBr23~}#ޮ-+JM>}m(8i _eĊp@&Jx~p}#dxRkiTH% vա`4af,->w:qQǺ ? ӈ7cY?d~b٥>",0L q!7`:X˵jͨ|zSk (r5FCTbJٵ&'m& m7˝sd0d0@d0鎍V-YѢ C0g @pHh +ߘT pvT{I;lxFT#A4%*lv-UK)0Kie>֝&*MM\aQ^r]v!p"3~LkARY*ہxl<0)ڇ̚ kXk MHگs$>烫iV(HFvz\VDA!Lij0a8yK tFzQU}KP@U9!@aFNA"GcR{lPB& 7"?|& SRKWNhnZYTǢX,SZ6 1/&(*e kfE31&=sU 4!MhV( W$PjŊLH.xOF &#.Lr3ho{27ײsSxLGwՏ;|~;5UnDJSrTt!]`YF"B#XD3#}t{vFFkpmFQYQG4"SFɍH NXɕPK\kBR3`3{`>I b{ d !dx7 vÖMj*7Q>Nڝ^ey5LIobN="%/H/d\DҜPAl@k&KaxG/rt?>(B @~|K }.6CL<,#==e,=6ʡw9ց16-p4(40EARR0dAJ]~1z, l1dFTLU,64Cmtz #&X{ p./= S,#QEnLlRM w{l "[b}P :^@>aGdRј_9MȰ6H\Hst̒BPCqntHۯW%Ǭ > 0P C0;/8D hCx|-t1#">:*SaJ#=K>,Q_ě i-K0BD1CxT\ Kmme,"&-7js6;]2e[:EX',J8D`*ފL0[L=pZ_M{ !iД ǃA$j$©\ԐKeĤ >8 '|F c!# fSڔmY| lʆr^ 1jHBHNQ}9 `noC$jIetAdXhZf[Y9 7o&z"<["9,`X8Tobww7p`HB&O4vTZdMM 0\ #8ݒ?.5H#Gh`YJ,C!X`k%%:w:z8o$?&#,̀P`lf 2c&^!ਝbrvʹ!r}j@! B= < ‹UQmmF@jͮti5E!MwnmPţbѬ6>"5ج -F%HZiH~Gbѕu$:mH, DFdCCmo n:vs'0 `u|s-gTvjكNZ4'Nz (9c^)LgtߠQ!$`w )VDl@ecSHvˠPyƕw87eQy)Ըku ?tGJć)vrpx1|e`;j@@R SAXo;C; >(-|66Bx~ CJdZI+MFSmFe)RƦhjTFWj S,6fk2)jFmelc͘VE2MiQ 5ie$f-fk3e%e-iFk\UK-%Y5Ϛh %_Sp#NGӷAԹkgF닕:PT@<";eM0LmchPb (DN|}~}vAš@89P[!(HW/YZQ]rs($M.{%'aP$AXBr'Is܁ODxIrLVՓsS)DWR 'Zysmo03—,(PEBq;P >~)(ѫM) )*p"8~0pgD-fa,"um Q A&G/?4㼃`Y@;R wjuX[Jd77+Xz.@zÁX9b1T yΤK'!EEۆ>G@XU/Yg~%{<=ӟ\lq}6nôIEEh#ӡɤ 60)dmm'&8\%{g'dWزaPSћi+XgjalX]\THrʨYop1obǥ" 1ffMތ/9\)b2'Q>遱La#Qc~&Ўa0{'ڥ /L,)t.{ԇ;ZG mu8Q)KU"wrN%g;!3?ӹƒUk]sXA"pz[oz%ӴjvcO Mb!г(mN 'RaP06{醓pਚ}峡j6ʞe-$b~s^{1*7DuQ1K:{-W 0&nwoZ@v=O'b[p{vXnF c֌i3<-ޚC!d=Y5A>}>" )CGӶ⁣o _Xɹ:]n #\$C)@Nw2͒{gn [#%|13lqVQDSA?PNS&td܊!@܇@M "_D̺ ?>bD1Y[`P!0q[H %6؝HcXΓl! i6dMYv0y pH8mI|tѶɥ9m6u [IЃY DEi LkMөufV)J@L"!Ja"Ģ(ұ+*)HL Nf")JbJ;"m;#hY*汬h.c4rp-Ӧ4QaBb(F D&:}wb;vAEr\E{s80l]D:=B;?<@c [#h&27 Ok0y`7@픲xV&o`X8+.7(`a#R"8qx1mͫoOq+FG >|"!wi $RBE Hmی lb*7'AB9Q8=?-AN(s$ UݯٴZF6ѴTb5ԊQ&RXX5 i !9z$w\q"nq*qT,K`$) $\yz z{TB }U(C8ѧ:wqο/AS<-X:F0,9Mm] -bױn 0>;=îӿ=" Rd]4dg{&}fĘ@ IGѧ֣ރ ޶s?P Nq'sjs;P !*@88>҆8@x`Ŋ`E:+KHFHAg. 8l3N(& Gx#d ,Tb`S(GT.S$jFs ~ShP.љTA:d 7 rv*#Lq=[s)c^ib cV #(].]p4_`'i:}6abaDtxRS$]($jYVa#v[&aEIp; kFI1eGdHMn;a_48E$ F,Y#&mƉ7qmhWG{=q:71 r:RU=ށaarB;;u{;C7S *bHHO)!R㚲ɒYd0p=݂ K-S6Lآl/ԴnXRcLJD`!z}N&%J1BDjXnz#]$TNҜa雟?ylD htFɶA:t5 %UDA&g2Dj1I2B$,dJ)SiXŤDT &ɭ͠rز"iXpB(ˮcbRòL2PH*rgO fcnǘP'$R `PUH@JE}(64oᱯ9G?͠ }qњۺV"S o S=vtcpL<>v`e~IFk)Dذ| 2M󦙓Px /UJl6>`!m0lu<{|#mXU-ͦuP41(w# Cԝ߉H!H !0>+? qKu?j r D9G j5D1 ܞ'S2s0Sy5Z7L X("`78[Uj4{sCkIRbVg ia.%&كہ8?hH@}g?ECI"u{`Gx0}2&@0J'Td' oXof> <P[Y)94׍cq`CFhN66G{k8hת(D=XX7z{)@ J J (!2t[X_ La ' !@ϰ/>xDBA=#׵J@% 2:R?K/{Hn,4`ʤqD QG0\~/YL])QC {}8xgсr|{\TJh;ﬦ] g,`Yk~FQ"ṾO68Ce 4GsɿOkLa ݛl+2cRƮ7*;%1 N)!(7/s ̈́"?:pL+'75. }2">b"1 1dii)pp2&҆ r/i&BF Ԗx[)V[IG?0~1\zOtC;$ [ʇ,foTsiy.e(HiWzxT'9jQN7yTݢd ԉd^ dF\ ekCDiL??Yy\~]}Z,9kF<6Hwi}| F{~b] <5ngcFju#|4rA\٩Hu7TudAPȠ0fߝw 8$%ACl(dBӐ&6KnB-Q fYI UDi2@`$J{8OR;)8\Ԁ0MN(vζ^ʼnDIĐ2Fk5j(|e g;h^ėçX#c@0.U*)FI 0'S 'IG΋2smV#FDpd"v2WdY2*\$?{ʠAXg@?j;so.T9xLl1K`ASFp".ݷ AM8*mlFS- K aS5t%\P1}R4ꂈ$/ I_p79iPR {wAO%96#=9_wK~e@Fv )4 :44 5N}c9Tn_)̪"Ė{i5KIeQ0Y"PB"b .Ȁ]=~I^C"0=}7yAֱL}TJӒ͆C~(&M@ ln sjzQI.YYOk5mK)C17w* 8 1*hpi KіcyTG,d:%@ׁ!>1WA>H2V3 +q3{x׼ES$9M0nrTP&Qu^׿G%=P v҂ 04*ZdbUrPIT ǧPECL'6?M`{r4VUF E,y:Ja%JƉ' J]|2p*Q8qU3e!`~luT^(<IL#Ϥrr7(qƻεua2%ތ"i+j1q&*F4{|e0Yw,˄Aɢ}8Tdܾ|FLEi& ŨUt(5DČQ/-DS'I$`ˠeP*7D!ҙ2\Tz%Ny6"kV:sS: g/q6n]eH90޷!HD9d(w3X\; klpJɻ$nrI5 (Fu l7*a V[% xN1ʡ[7_fc`>$EnN-zRluuqd=4Ƹ.6.n“a8NJ V+M;Ȓa9CϧFB]R-0|t 9Әrs=o;+$ `~#pp; #V$10QO~ Eh7ꐸHI B$܈k'ϵejr1 csC(=&D4P׉5q+ Sg"%<CE&%pu)6*c  2mI򇈸Ve]זgh{~TWIs]'k)("tiӎF"x4%H1f-*"L~'x\`gMeQgmiB~Io=J'4 󜢗|S7Yf3:GH~:4ug}60V$ʴH@bu 06qHeŏ˒iqctzǰ3ۗL-}*k-FBqM td194Oph+C 21pℒOxva?:0xI!؝P2he$4HB2Sǎ/.NMy2ћ0n*p #ѐ&2혓Śݹ-ڦQq^j0Q!,XC- ҔQ(hm7B:572""h3@a%Vzdtdݥd4qԩ$0) CGxJ/ۜ ~8pe&\e DEFdŜKd8~~9w*|wMo9ief͈6l\ - AJ ^\N"q*e]L% Z.)(` ZUW}ߗ:(!L+ ѮۃEU7 ʜ]؇ >v +De¥$O`HyeD" mWamP܆mFUW:ۦ>j ޟb2ЦBTȔ,lu1~^{{֐* 0ҧb!F@tDR }%);wl M#U<e:2S| HEZ'? ӓaN1G$ev)uUʹCYR[&ڗL[dde=C/آ[+j+#5Kt{GĈG"CJZAMzwz8Wy0y~z#5s}h(x /)vEHh0+XC@bWAA}{Ĉ}Fڦ0:],xjOs\`y|22 Iwa 1l_ QXs<>̡&Y`#MR $!B+`F@'ߡ#d:!׽9K۾C610(nB1b=O%K3,XNvDKm:,D")E@r.U(*51Dh9eO7o8>s3`6fP$ؒDO$XZc {Sfىܡ?:s0Y"&* ̹d$(a cOhbӊB#oG3󑹭 'oMw&v8_|?78ebQ(c6䛓gjј!OVPDɄSoD䥂 OiܘSLM`//9ܼ?6W'j07h"Bz?Z_{(\p%0Y"&Q@zbl͊MQ {4N:jk = 9S}uﴑ,{t~"p~D/&;f`E|Ջ(l5_%Ƣ+BlE}qhW1"a!(EAI&ZS#40F) )Cq,lɭQ7]Ԩj)x^>"B!bB&e0QIJL4&K_9Nt)m^OD>Z6a,;Ζ`j6;cg %-|32ao?PDCA8`bJxuwwTA/PcDH2 kĵF(!?XādD( @BZ1TV͹E@)$E7߮0;@CS~[p||ɇVv ,69C퇇9S}feh1qt0坜[7¦^=Z%wq@?4ll s{(V>4>$pFA 01ڙ Q?L >7hE¢Xy#bxk{v Ŗ f)&jN*pe É 1ܦ02I& o5pQlϧV׵ᣏ3u Z=H& & $Ũ;d6}`aPP٨@Ld5A6ІB# 'H:G4Hh)-ڃݡ }1e>H,%!sk@NӬ RǤZ$ P '̠a̬$03L'nyu֋ k[lX+ReC"evJKo鞗,ti8<K]Y-H O7@ ا*,Xa 4ͤh {oϳOh ml Sjlt5 ]Lbm:&caRNcMm6C-c) 4[.xqu(\,.v.a͒: x]$|!nI2)m2˦fPyф8*`{yWb{hLSQH`lRҕG{@k< A`-:(A RXw 14'J8/]h:2̃zlQeѹ )Qda"iU6ZJ4RXBR\e`bc )Ea%%D!a?| 3_)P+$F('0<( q|툐|{^>[?vga(bAC E4bw#}楡^cbcJp;l0w+PJJ1556|pUWQS7{߻p:Wuty8{M }'n^yfepq?L(?cĐ5D0C z|10F#!i]Z[(C]㭽0+ZjFFfh.Ν`DBr #`!75lJ£|r`WNY 4I&qs;J!p(: y Ԃn#ФBcUQOJ6)c bspPG5HPjSʍ"7Q(ii(TKBc'Wh8 .$iNWd"V(p V2Ě RTV1#1dܸ :cKB;X)[XEpj4ŨDt@'eZgıMݗʚ}F%^}>D7()us&'##iQSfhj"1wq,㟉2Jr&̝Rh\s 𺽶ZRy'=pw|naȑj|.ΛsbiPPQޞ''~I8X:uw H29e€CÀy!6f OMQHb8kKDb1c"`bA4Ç$ʻ &4҈(<h›`$9c r@$A14ѧU2%9Y&7MDAF-US`M5m]TaΩHvHbICy7o7-DJ Q%kNCKh[]ʑYJhUT7LQ^=hE0"M֭AMZ 4Sd,!L|<ؐ:PpidDTL_qP@spnsʈNpi4soQ $th `zuJ&p]EC eLs0epK(r)^A|PyBfѯώd;z5^rN|)`R^9{w 9u*3qiO= _REG>\B֬*gfK(Ony߷k'f T/l!s(a׆쁑 k Z")r6t*Quv{k68LiQ'XL &5)B4201Ek 3֐Qp(H"1bDU/a&ضCAʢDs5uCn-S&ѭcGסIREE|#M44a2bbN88iBhG u1KJ({m'}c KiB_tT"Њ>?y?炨hUb">oRq:r蠨jdM˺ݔQq;| h󝘞2¬!Wc AvH1.F P̰JU{SX7w1'6$6@l^H4 eL% E%`ChՍmZMFȘ%Y %bi!Q0%@;Nawx}{AO` ^_/wuxwTT|{ךQ32T̓2MUQ32L̓.QUUD4O /=:ZWHT!I3 ꙄV҇Ӡo&$d*bhW0k+豎#`s 3"Ȉ.9N1{b}B|S[\CH|)DBrݍw]D%B(Db&$%6OI!B $(AjMiy;`dP|e)`P&p~n r\W ˾@e0y5]m"$o\-ϻj;lªD%dL+BN gʣx]@<|yldCƥCNUװ$d^;a}1|7 VOԇcipt% F0jIxgy `[`CmPy`bEIB4"OSsyotcΙR.WW;dO&DBNN@wPu;F}cu`:8;+&(|";L'4l}X@Hn,"(T%@բ qr2U8}0&̜j hP &O8#H a ƀ M61_;-HE&{Dtw۳sWhJ\UɠMhCo " H% Pe) rr '.dИ5I)>"#̑ðL4&'}OOwChzm,#̚fL.kOW$i-vM u !Y$H0Fil@E㻸g)O-ֵ8-CDxByZM% ;'ߘvu\#j u`'d!%2ĩ0YI,%€a`A w}>RR'Gṭ{C ?9ZCb P1" @:_(hԞvQ EC)5nbd&-wm@RJw 8́^KwlqpuJP#!azC| _(%>Ygnw$ЄnC!twZ* YXCDU&iRP $ dY PA EF rPS=8A R Kh 4o*ȥl !0ޞdZ@OG>Ij# #(ay/QLg|5[d+VJCiڿ.uq=i섄!!Y. WERJe V\W $BLVf7):d?> }Iz s7|1ѼtMح`>~YI@B>!(&JdT('>m`}@(w HO>Axn<(}^g|[k^~'_~g''g/B$U"(TX H?0;T0 4HE 6i].߷w]XnX民'^hJƯw >rEd4drJescAħ%!k1<C09(Rj D(ރ9iE2 45 {S{f=l'[6R撝f;5zǛ'dc$@V8pwhd,z0rDGe*qlzsɑR"T̐/ۥ6wb⒦gL'I|6[`r9ہr.LJoGՌBē,,Eܼ2"91CMHG-F 5-< -Iϯ:&! :+5ETrp6d`rm7ZD":7 96w""^W>7]:A2>:(D({dbG;ԛ;f1!n}y AO8'mԺ q6 4c.C2LN)fY6yzM/6:3@(:8cGe9Ś篇{o38][On좻gr&Gm>3wY4]MD*n Tߓq #`إk3%)%H,53y8 \wΖ8輓&?ɒ̺еpFl ro/&o)rXlN@( VPtEX b^q88ފ 1AA7Z&Yduݯ\׆-qCӜ~w#;&/rZ8rPޭpÕ*cKZϒ+t7xNР$@T^x. bw MD4diISqJ~صh#m-C!IRAk}~"1ro?ζ\Rfn6hb5źw,1!8~5FDqՎ]HfF'83IqAHeeZʕfgnm>EjW*΁_&sql|U %@Qk G*_^MN$_D1x4mj Ĵ,a,{ d!IjW[ uDtHeYUƀIm$/)+t¸b1%@{FI%x[]%EUpٝn2ED(`eJʏfKt;qdDlW9TΩG..̰` *h\ygBjk=Gee {N:WCyB8ѧGۆ nBwO# a@#3$ò˼IE%Ɣ4s>KwQAr%1S-˩Qwnj<{YuϷO6i-:4Yu'`*]#hD|ᅸc % D @`Sѝ38ܦX TC|8g'bgL[2 RFDP|oaxGCji, @o a|/Ȏ~J NNLüDw񲼡_|= SCmD6Ug.Xa ܪ'-BM̞mģ=rN%.9@H_y [it9ReQj1y_+hްc C![ Be(,7*,C> 립Mu[L>xBӦ!X X:R@]sh楤Ɣ͞&sT{rgrcj[0Q Ze#c$Q3eOo)@qk&Fh㱡ǥiFLr( obn+ι-&#=O}:=RHjawҀ|NJ|O0$%2q/͉SĔg.]o:uwhTVi[m?58ޱnn;+QlC*U&-KYꗠٶ'N&MA$wMMҭ^&l'r5tD`.߃Z! .꥚}O_;IdP(H7D^긻Sﺡs SSA)pW-o(ć.klنgf\:9MW=q||x\`ʠZ|SJS>8H(=R[@^Vv,QNJs<5ee[JGToOn)FC sjRELf])(K8T;1B $hN31q]rhUg}&uT`b6f陎etZ _Ej}>TC.rfNPq;8bK6i(ŀf&w %O« Vud!dS\$my/k+H!@¢Oz;ZDr\18"q(m)쇙?^k2q;4~(NZoWD..LΡ"F ;6+[h  jc3E+~cBqi‚;  >_-7=LIwHbT44q9a6ήïw:a͓QGd`g^.x L9Ah6xE8 +G"c!ARL$7wsb{zdM0Q|bd r(= Cm0i&A\<\}E#,p5/ME4XU=\7;``1[ᎃPJ!,N 6nw:^5Ǧw.:r(^:* ThAњ5U% B7R{x/(0W5h n,f0H7ԻS)*AJ.c`iu AtZ'ri |:k4gK٨~z`F% eLTklԶ1CDT>ݶt .`U|z $@sh{R!7:Á{?H,xu C6]Nb?FlxWhp郑SغICP {f_sɮ@y`N%aԢp,$Y"7\)0DM&Љ6cqfSA,-Z 3T:R~ ]s 53r東i1SQ 1cw &bP;\(% ۓSN~&]tp$[B<>KyQlE@9a>%ͧ[#'S7GMmD@s4!i\eZPM> m'N*Q0<D; -%7݁sL&Q'x}j{ ,OnJmK5kr2 (u->B&M=P?HRaʮhӈcJ͍ Cy1R&4n`𨈱($ =W%tg;Y06dJ͓` 3nb[aqF`<{¦ي`(pt0S| 5(}!B6CVUSh$ݚA0Abh ~x3C.E >Nm./[ ҟ=˕R;OrB "fK  |Uw-|A;w1!G8jFjc8s A/CզKB8]) ?}ooMA~%!gV'MALbq Lghb;tI.AJTo( +qаq72t8h>;"?02R((Yb4ZWfwO7nOJI8ןl }扢!&ߏ¸m3p3CSEu7zV)jR!ayf|`y e.[@sLoب@jkڢ#uѓG'Q"v5xv"!?@|F'w^&g檄?V &Ό=P9bYK.¨1,`A@ܒ/sD*,'wedD\s u( z!;v9`NýYsSrNUDa24-'Ha@遥X6 G4ĤVՅAYHjEaˏ j&׆QYq,J"05O!^YK/>,TCLGFXrBz;ʇҺ9Q?y #IivMFsmL%EAGEc"""{%Rj>2U)ZqmhTIi*{6?6?;{>;Q:kEw?C$_JKn}f+om1.QA;RCn0$4|A,̖s.M-{m÷ 2&_R tB5pHp\|vڒX}ᐺcGX]K/[Puև؉tߵt#4Lb{v Z{}G//vIA{`f$Y;O'BB=jZr-  %Ǫ^|H` !FWu|5Ae`gq;5TA@X}/ ;އqպiD[rO_B/,٨5( ly{qEER@$J1"s0m' W̡ 2I<'*~e{A:T4J {{;!fZ>Ra #l $*{%; 4 2G" F/:2" ]aAk4a䤚Ak0B#m.:.1v"K؏=#}1I}>q>=#? k$LOmȞ͘+IS6/uw`^d2S(.ʪg%;{1Nm:Hu$@Pb@VFH"x,N6  NumˤSD* Y|IE"[P}(ӹ3Nvƃ`:"  Zs2̡GYt3o;{&)MY6y5 4D3pf`|a†B/K̜FI=2?Lk:|J :rT]ezLw[$ [2A [@$k InW c0(?mn䚇uc7b;rYp&YFBP;O7 L-D @ڇ1sTq8f{5b M" BQH g*%3ݛڭ۾INtNYF()A5;fb#]"SQ ȡʄA ̑2byTz{0o1hzāĜ(³xJ]ClpDkaY7Pi%IWp7I(t>SWcl3w2JA3Zz' ap(7eh)(SmA:^&S%:㊅#(钠`(ݤ)M{6JՀaTJP`iRaH%6s(\¨$;ɨTY_%g;MJ)(tX,P!pRMQd`f'C+báIP7#07 )(*%=5CFҪ ,;p~cړ'af1u`~MA@m!ud!xSV2uL XEM#J$B4'u}Fǁ9$ѹH:_6  Ŀc1QGi^'1)&xan[_h6הB,0} ^_3km- @V?F*n'&>DnsڪBQ%^'w+AX0T2An]O<8APwwNG\*W˯Gf8)Ñ8;"=<ዥ;qO6ę\θ8c6=W<`Qpq&W WYgw葰Qv! ,{t]<.1j4 ;MA=l}2 dp('C^RUlȲO;M|r*|ncD;D;WFA֋[2d{A2Fއ8HbPRN%>gzl rb8cT@T,@} hwdچ1_YK^9sXC.dX4]tǭAd"~?% :1iL5*~,!ERL2*"|9kYwT@ʐrņtw"bM>1H^l0thk3XW¼{}[UDs~^ [O?\.OcƭR,V1dU)vU`G>(Ksk\$ZV ]tG&zz'J.BuyʗofZ<T+zLh;-phQn<F 8$s;tYK"U"WYq(b8`o*dNRwnn &P`V::r” Ċ( )<ƍi8Ej،ֱ$k|(O?4h$Hvj$Bc.ȳPՆCĶ*`8 $l=Li} PwT̡:遽=YkxH[Pdmj,a1VB !C4 Hvsg[.T( JNo M2ss76ˉ0 咰1OvPC rCcץ8m~^1I ?=F`I,tr'd51,S|YQߔ-EDA3䵮Qzh}r{dk*P"ffsԚ83=nˆ F8ޑZ]#Rqr2e3-RP4Fw;Am&p#.V˥|Ek|i1\F4-(|, ">Ԛ^CGˀbR;͢:^tI!r&LCL s^z:낦8P9œN{XjhiGEzE| 0MԚB7K<&|]Q̳s BZ$;tKЉ:` O%dNdž}n#p r<&)%6Y8N:S\R@x H "~OT.TT-wG#Y'N8U#YnR|+Q.xusUm!Ȏ2 w鹆a8Q D5Eq·]^nILyO nY$w% oyÎn ƉӮt4 Ȅ`3S!A񺈈I!F )ΰ @C5YZ Pw2oJ0R1TtQqٵ:!G2J_#4[)Qnnڝ9DY݇`@1'n{'kuˉ<6ALČar:y#cvF!,F"t;)ҌUt J"!#. RjsӽgE7HgIkuն2 >wt  2+@a'vz|)8چ$ F  Fڒif3ҕWg%"+06֜6n0Y*^$;uףN:;J$la#"/Oul*uÉ9|\':;+Gf gK]ՕB bV>PˆZ#t &"fhG~hߦӑ<&BZΆcD)٢2$.懡ZlP eHL˕>Y0 B(=2i;pڇox"@뱱HoP+qjI4TTҁΦ UHBQ9ÏxhF'iIπrIvQ4נ9]y}J%s7x5>St(5HtC cj]L:VC7iuO ޿3><86/ޭsḍ5Q:2k N hI$A퀠)o{po۾L!`:$`DFӅ >R(9HY?ћ6Irssq76u/{nf7F7ɫWiuOo4M/wޮ=JCje$$s(WNO(yN}9]pa*F(\ fq' I,oivnQOmjɻ&wB7c.ggHF;f')YLBS̫j2'RiJkz}ek5W5%buu;}ެVgV޵4Dbڀ;KtIk]vGzk{۠T1XX5߽.4;>/K&gnL\L0j/ʉSx\gbY")cQIpԫג|'3H,O. S>΅^N3nR*6*nvJ F4AH f[W `B}2tt.UĻKPHDnK4OΥ^풾SC&Dv"26DqHu{CvƹZR)e*G\P1 ೱ77vnUw ' ;eI7:YԓL@؉<>{!OQh `L!0tq $ƫc2`AQ744[ &jIZb!xNX0)pae`pe)$3T0;RPSĉjE'stx YZɰ_,DI?!%&d;:p}&(GL;#"#88Tw82I_honN !BqA3lcQ7V5Z1XY ]]2 m@F0]Eq %8 D 3a|pmi7  tO b3CbG%qlBw gco!eJ4j @ )0A8wptPh(c (8LLjb<amkɝifPoDu OV z-tP97 Pࠎƶs.^7%1HO(~BBDv% DpMNLs'0glS(Xzد#'& u12ğĹĄQAS&h!0{Hd)߯C?0A~FrT@xI~B?#_>A'^4-R2J;HXH%쁱XT`{CN%U{ CS%ٓǒ|UYS 0. oUS!0nl=iz`ꉺn"ōF߇؂>C>P4z[Td[`kIHMhPKg aMPhTC|PTSɏ N]V rv숡#i`S&Ep!IE*LIR-+Hm$ےi]w&zۄ|06a 7HJU1@4@TYkfHwib69RsmRF#A?gmǣj*X>>[n퉋kZ8IjMBCR%RɃ-CGoQz%MRJfSl=Jlg(|7XUy C1#02c~dE1 ͛Eڛiֵdba27>$1BٜF*E`Dd0S/o_όGb /;}>I?sA}~l_]rpm KpBĂ2~$lu-̆qU;;wGpے.;Ɲ0fPE,kMCO#ГG dQCP**v r\.ڡEuH̵˞GGs+<,!΅R3m-IpV-{u &ٝl]+Hѿ p< i}T@W+4[@]SWe5uCI%F#x,FhA-S2]2/Āh뺺jowk^F3Fn5۬+[I(zBvDJ ]M2.[#I{QxA(&OP4%*m"0Ө=K9xiC'tB)Sn0N$VF:@)2oװ\)*kJN"Fv KahKŐȞݠmLt6Y)5i]y*h_Pv#]aۊv9NatQOCſEJ[@* x"q,$9GyRcj4i.i CC!-bxH{'hF[qω d@r@=yVMu(Fc Nd)NDZšQDƦ0ęOF!f?LH ύIs 0Q/㍕U܀ <V#PHS=S|?(#HhzyUT rq5;&x tҨ_f7sEP;  D@xjAH N~u}fbEBC$d\(gSYr%jԟƃ5oBN8OU*89mR%lGۤjӳ3 ԚtC{WMΙt6Ц2/^C&ɶdaxLxӆr$ \Y`̣HiOksFN Ԍ\ E/&$MCH=:GcNqD6m#Jí&siöjdPKd2^O#Z~10A2C %tn C^/ewwR1FP825'd3 ֌R7vS\ fum:}hH;vے7ukm}54 @ Au>I4t_`GT>:GHW3KDD=oϸA99۸ָnICOn8p.;^>x8NI6,6]"֔8À7tEtm-A C?1b:KO[m5 i,9|ݛɎj7#)`Y[[Z644GFG.ND)-rOD dKm^h?_K ޶}"kVfceFl*3kuVh*A\W:΂(Y{:BcAFgR^*'2 >%7pxP@'|Xyx9Ʉwcvl`b ES9-6(0Q Xg|U4{q]Hc3||?>E-WP,F'C;F2 f"Xr6/֯QtTr9|?M8CE9:־ɫa͟;_>>j(oPAMOuգ:E}>|eIΙH鯒皊ъ)4?cqEiaŅd&MN?٦/vPV֩X*3[7\\zR#L+NivH8 4+*D%JåwTePCk|dN\_a G& `DȒĈm ?q I$9_B$ItƝǩG!vGp6|nWj Iqǝ_ ;Gt=+h*|o! E yL +<隠o1TLXcbJ.T? 0ѡ_*>}2+gf Jh$ONX51G ڕ8 P_լ:O%VD,$qP,"/_ @NN7UZRA(ED7,yY,uƅIt0YyLFYK7u$$XŹ#@ T@ Qn+qXZ! ;T +XreyN+dHAmm8rIְ;!Y%;`L B_x]217]nґlXnÁQ m!qە!Q`z<fFkSjTq!Q*:_\|83sdM~ "3k8aI'ɋ=5ÔdDȑMefde7N9=ti7|Ged9Sӥę7 f136jDrjMc oX_!NROvLzPqz~Ǧ2}}O=#E(wq>` @}D>lVrJoa2ٻRll?mT;Ǫ OvEP^\2.G>hV *\?S9iD${veޟ|$2slZa*k]/C 嘦l&iN} - !UkI.݋pXWhPo4.C7@=NQ~/y>q) ņU!/ҧXt!jn!=c?U-EbC0ߋJažDs7ZAnФSHPLDe4mh֓mlbߌIb!wli~abK)JOCg xB@'Ȇ܊'HvѲXx^)׿L!))@"ȁ>{& ۏe&>꓄Q?0ld} 9u$>;QۭJKg0~ v%"zSxZHT|fnkS%=vA v'ttfq1HJ-':4M>6-}Y5l~JaSefdl6o 7OWs/̟T]8̭hkax?*}o,0DBW &HAD4HQ@ivh pp^E8R[}h"0@vG`hwh)SQ'Pޓm`t^?,zyLw > c3|:\ |3n,ACzEBps߆hYT2|=sb|DSO=?tQMi$jִ Š<݋ỏX$q::WyhA" {~q_ӧ>|IV[^9Z\HIHX.N,B0eU)҂THht8,p zfo]#saЁ"bJ"I| 2Q\ + NJ7Ytn~g76ORHw=#L>Bw).+v;*1D:$ $C4#@(PJMXЙ!dRfJIBuH`($,)@,8<9MG{jFTzp?q;dCs]|E>( rR\7hzKNV&dZ*]T-7q=wZǭrM'ÑD,$h)DI_Ss SR')[sRNyQvBmiߌrM~S*(%v g4dd1W[K%B(:↌DB6Kl#!f ,ҹ&ͮ%ؘjԕO KW_0Q D8\ye׉%S+ RF%"IBc-SxmNd("sܷ 8zT@эmp"ɘcIYf*-hF%ڹoaE-|oi9: " QM35} ?qIOU>/sr{xt)k˜u]Cޮ]d* ,욡Qf !!ݧwɩp' KOP A П3|~wÃD8@*fu@MvG>8"-3Uy݃D6<>2 HUsǙ"&W X*()O ;9@'CJ0"~Nzyv}2Oeô m޽![T]:RjY/ N7?#=d0g)bTbb= S mx[3= a 舜&&Qr15bL`w ߴ/hAvi½IyZQ3YE/k?;Ud\"ɴm;''$;P1@=?K}I1@I${C#?+2Gfm#ސقF/\:9 rbg\8C$k7  !NrFv 70h_$@;A(0Ins݇F5\*R-N\L*^p)3&c3 YR``OQxh0L|A{̜i>W_ot'4/H@9>OXS? zk@HL B!z PR%"gl Ax cM?Ɉt`jUC -`ie~M2+(i0CPD }`~y|)0 EAa;gL.$|UI}fo fOxhyg_O?~J6[FV@ R  ?|C̉ChyO:,y:Rwl}Cۺ~ >R§Ǽ ReEZE4lB(#,"DVhjiK-EmL,FY*2U-YAXIajPь+% beZQiIŴaK&X%)2Z)0Q)41#Zk4lD섕6P]@k"Pc? s0b`cfjʨif PB.(><xT%H3A]%U86řQ[)% (% )ZDf}֚j M~a ?WT Hȥ40)>6s I+kּhPhk^񐠦N !1AY&SYYq0ly\o˟Nb^U^!рz|;ӻ^{礔{zxuPznZ= <={}뷶ͅ.N}JsxP}nTjlݞ;5wk\Jiۭw0}}N;aMw,G9׋g}ӭ_\}} >_o׻wm`yzSOz}gʣd|Ӯ]yiZk{P}@*doNKbMz zzAç>{wG@w١݃"y{ yI=>}BM|a}eG=zp6ʋu^ϥ>AfKޟj(:뮇뽪0-׻ܦMݣ--{s` |ƑA݊P[+ȥP74{/@^wG޾ݽWz}sv}6nA;{Qs5}wϫ}>լ˽ڥƳoguOo| };yޱsw7-=.< C@P{`c4ݺK 8;]O=][Wɗ}-Ϸ޾xlk7t-Z֪_{ݚ!륾w|m}7go;zz͞ws]{Vxv{nu{wx}puw{7nJn`oVuwzz@[5һszmm[2}gs{w:sȻ>[oy{/r+{>kyo/Vןkw]y袍n{9Iasg\:wjri1깞u6v]>w4vLJrSM2}#4ެo{vRS]5{h>i^}`݊ GowF4sGI(}=>z= ٵ)Zs3{ݺoE֯>{zr{l94mۍU={467֞9u׷f d]tobwTJ"wl6ݾϠ@}gzwjZnʢ4z9ޞw=_k>>rZYu}W|ͥF;R}nRo>}ݘg|q5Eg'g-hwQ[|f}.vݔ: =oAuC=p}{nu};ݽc;tsnL鮥q_pl◞ݰjN U94t{5ܷg@mS{ZsA PNo}JOa[}̻mu=^n=noFpWoGl)ma>ܣ}+ۻVvu;w\%4 FM  M22# bS4dF4i  M#8F{BJi )ew(J"RbɄMMUDD1Q TLR*!KAADTZTه}XDQ-.Z}V_59sXʗ)=EżL13OWO a"'ꢥӬs\A7K{cSq7\S*躈J.fqN11vBuEݑdуic *a7wU41o76=:ECa+2Œf3t[q$'*EEeB9Q*.$E TDQxl)>C .@'GG''@ `DWPZ\O1P:b0(m;8!FZPB|"@)2hNPF~14Leh!4@wf'2YI;qb,IS 1oV3 P9ǼgOwnٺl1%)*\Iy1x+%K{:QfޞNft#8ryo\,Sq$CA)bs2A Sr(\ThnqJQńLeqJ#0HʆL LEs ATŀ VXJ!v@`d\!3'3BKaE8Dx8H90P0 Q1C"CJ-+@0c44ȋZ3f$$,AT:R)VDj$!`Z2F0I$U $)`Q3.8#=!1h) R`hX2X @`93F؈~@DP0P^WX ٧ޑXԁ# ;gڔqKvgU߇=&1T 7Ё[$d,GLq"RW) t!2e!mH'"ZEO93/yzXg$BB=geWl EI "T . 0b 9=U,ӊʬ%GY0mbd($d1Ѧ ;%Ɔj4 6oeڂ"bo !(@ɓ10iۖ$7!5tFE_wNtUDr?*O kqLR2d$SAI%4$Bw4~? $0jH[p{@|k  C@>Р N_ Bp( :`oz6cl{vVh 5ba7 B- T̎?=53p*H$KJvC ߜ)3 WX%>mk  Y?EVl=¤}uYM~ˍzEe_KuC.5Hf7!#s xGYi_fD>9C<)e\K/œ>=WoGs?  ('}*#  UcԞɚqtJVA0t#7B N-~}9&iy{};‡}*e' 7HEG{So2oڌ(;fFTU~wirȒ¿?)+m%C= $4(B.ItM-E$H/,z7dn׆ @lp 1THJI ` I3EKDA"f 1"0Ocuxq P$`W>DWLű:r[0Kms L7mi5H030pj&* #51NѢB BFC NvE#AGHQUIJSTĬR E DѳFBL犂)w֛٦z+?8aFaڍf$FfQE!ݕm%IQ7JކSsE 3>Å$:IdܕzQ `Vy@MDġMKJI5RMADM4-3PIU\7##YiAR A|d7% ,N`DR  @R#$BLH1 4g4k%J(G9M=j(hEuSYH 9foES0! E{%ؠULPiBMj bn\Th I4Z)uuRX$aLKFe>G)3!XƙB%55K5YLhDqotƙWOc*YѬ/QWjfF2L+֚H4V&5ŘU=rWW1 )x.[{-\0:JK0&C=3$7C0bQA87h9=fu8 CᤴF*xc = BBD_|> r~ٹuq̀dUM}qRc0AL}Xڸfl搹s]ŔDفK}VW[n(Bai!9goCޛ~kY*gwEl`t1h3#b2ıRZ6+򶵣!$8W 5HQE  LE%ALS@RTPPD1!53#H,DLADS0 $t'w8ML'KaS.$ Z*>h+>цV̏@CTI~?Wp*?0")ИL=X9g=#|_]]u:몪 ,vM'#w_~_ѧt>0OdXt_P(w_`D2 r !#r)=ZA~#fNL^pDDU  D` cUU#}ް3,|bc6B }~'A??<%ibS-*jt-4ƍJ?YJ#$_͐J 9$?<'Os:!)<>Z`A'G턾oC'kA-I$<+oVNS(zr:PTD^2~ Q|O~'4I:G‚$\!II*,y:D)8pT=m2sfޑVjkvmw8VJ8z߄@nM 4)=H1fQI6-r3ms^Y'F ;~r#vf0$}2Xz" 8!OCe7в2fpG] [oz-pL}VHCoHڅևBCRtN0+09KNpkdZJԓvӋ.5ZcR "Rr92 EV14 .M1%AZ q#2xx6餣bfI@f\7Xnr >:wƨzbμZÆg҆ڷ]bX%Z rsEXlwhAڵ`8 D)@92%Bqjh(YuTBLD2/;Z"J(@CPTLM%@NH|C~`e 1r@ȐJ ^وEr!*(a4ְ40PxGNBZ"R"b 1NG4r1Ň%2 L!Dk'!9!ih`b!BN& \2 h"&Ih`&ȣ(w&j$39n70HT 4% P ERQHIJKPE P)$RR$ETJMM #41RBTSKHA!TRI T0D4CHUASU0D3LPTd3 B!JPTDPC)4T@BPD:FQ%@?&::4ACjD!Za:2B#&bgi&ZJ(.,hDsxG9}Ie~L& pa! y(i.t'(z9ލL䂃2 H);ՐA vP b!ç< ʂX$IVBB"B"!LLTCn qMDG+'?A`+\:_[-Qkp$6 `64|")Nqå?Tg݌pCUyk?ʼn, h;L3%~<%@1ET~\;´SDSPIDTAITWаI+# ´A5R3CTB4"C,RKSK P!LP$RO0s1`oEadc,EXuq8}xQQ:ɡUM%9)4H Y\b4h0%>G$)JV(HqI.z>Ȣ%ʊ8-,@ECS٧1 1Xdթ]kkx]ih1A* ZP)@ (-HJރ"B)JRj!!KS đ 4 f 2G&B$QejUxVTZF`XBf &%j f4U14+I5KWQ4~m^;ÂBvHDQaѐ=7$aI mL!qc.cm&ю5WL:VfҜW׽ҽoLu_1?,4R @%gScab}90@|)f ܢMImр G7c)@Zۻb๲&0jC"X= 4tFE:ѾfAA7FICk ښ^y>gʦս1'|$,&;;<| kfKhp/Wx^+|qi]ѴAL\NfzVҹKo;ɘ)kI  I=F&cw嬻QaT4옧C!Y͚la"4:E7,;OX;Bz!h!}tw81:{M \ 5 ߙi߅g tٴ?ZAc`p;mpB !cJQݜnc [UjEsΧX89dRP!0*ocyB%_}MhQu) FJ+܍M3:c N!I e!Cǣ,/TV0i|EP-o,4O"אbcJ$#PHRNa̩l Hj*f Cތ˧GQ: ´dV<{Lm$:Z42D©|"DÓ8uHɒ-aq֫5"bԝ'D6#Y0P`m%]iG'C8zuuZ4Xyi#8qvkCD0a'# FtU$;6aAi̚Cye'/ RFA3+&أ1oM1ʻpg>9<MSJ4\ "UTY1#25: iD}ɾL;fV.DA?.|MϾ1HaS7GJƮ:]BveT.Ƕ4{e̝5]Z&wW}f}s~0BRT6m5Ɂ!$ȏpG:o7Z ׏hj#''# ve$KയĽӜHÖ`0l!FE=+P0 ̯qAmhhawp㤤dVl~g35 6] 8A:J2V5594'QbRs'w(!`XG huu*Qlvg;4BMVLJwNq9 ;?Yd΁ P墻X+F18cZH|h1b7.盇xˢA=CלYL BBeP }xswձ+A,bV3#~:wȯFs4yp!:9O+u3  k1 NTM M820M&6r7\l1 LiYar W+YQaF8ea4RcSqʘ YŲQ41K`8a!FНhqAIsqbQA3VVOLunjs~vͮG2 "B3DT"""*bHb\f&Ʊ8%J3lspkt1 xP@t٫&zT٤u~jN~RG=QzdV9IWM6L32ȯt{x7CEd\ !&2Vw̴(2ɌS*Dn+j H+r֌`E"(,-UdQY9efCf?x٬$x2bZ3VQfQ ]44ɐ5jT4N2)Y*'Z,DCIAAG03~y<0O8>u57N4kx. ޵F5ߣ~?V˱ٕ 7Yk2r"Ȃ +#r\i %LFeԥjubd%T2f5")#"j)Ւ: Me9&ըԆSTQ PUU@ffJ2INBENu S EA!Ih)KYIk S,'$)Z)i0l:JR}0kRakRqDq0±Vڝre+pcBnY\ch`7C褯rJ7Fv*%XmI8 Qj dcp ަoB"m+QE#NZv%#[0 ̕kNܼ^=o3w&tB} c&b P铎$0'qpq>zuF*i8X`PM!IckFMj _ dȣrhXdTD h#ѕu,nQ@U34IݼmaPVM45"+Y`أV( }2E3lɌYj$$t6/ E"A 4ąEEHR дP AATdmeIM=p0L9b%MA1>lĪYg>dlADKK dAAƂ"]5)ICzeW nz3m@:-/:hjx>8AC;D؀]=yv/,>^\쓔TD4AQKMPL43FXT2I &A@1I E CgwXgc!')+¥i S!?>t|J"yBaR!E&@UMLB}yAK4jb3",*(bP]rh|w.UOD7駟IuD&_~Rme6(@#u~)HF<6`s =Wk;šj(d`k⾌bhh| bp\I"F1UQ ag:VL hr1 )^Cȯ_(ylZݗdҪ$H"sjôl0fƳpl4̟t}O'W9鳤GWUj!&ƨWOMt>UMi@[v禋dfR@n0#5~.&QU7:pĐCwkcU4Sf^<俒A;hBZ@O,2G] <_BtfpjlА&BdDh a*hi!`) m >n93ON\=`a3|MuAɱ(OG# ˭>Z#@jPiɆ#Uǹ,KSJ [H噀}H-wsA߇B]c^".p̸p\~ yN~4rӂPU<`#(,}?#))(MHg?'oO#s=a jۼCykOig-,if1wŇVΝɺ=Ŏi>'| ڎQ_3CI,0|$o:iP`n]OB5T"s@ikƷǟ-ߒZknDq1:Y?z%pH(:߶lzi,) $mBּ*46;hDH,`^r򞑙dPP?KߑH4ДR!Ƿsyw9զ+qG^=5\*9O-Qc\Lk~^pNs5~gPF#MQ~#?o NL,a'βlg喺}7G8Y^:eЫ29#gS'$ jE0ЫYj{ib!tf]p;nK nn:Fԁ3{|(tSt $֚Ek1zEМ4:~ѾU`g?[Q+XZ+tq%5P_qVasq u=t ajW瑮6q\z>_|_]u\뮪%^MI&A9ނgʔyŃg|tTZ6H dl&Ž{C?Om^#_oo\kOkZ֯Zs}G=5xwDTer}Qy|׮F 4㳎8Y*O)dBid1 PՔcsEEqJihEYUQ5IH opQld?G]wj?#L7зL^7קFYٍI!KFN~6lRE܈| |dKj1.4ȿoȗԑ M:zvYj~+sXUC??4XޤUsE.v94+#.L=vݽ*iM1z:@eWӔwnjn5|Ъվ밝oXyG]"7]"!ۗ~mD@B)QK|9 Ϸdk\UHL;'qsUұb'=:u z"kݺ{4e^*f*_(95%AŒ/" "5\0юCwwm,'aT<3MÁ000̒bVYNP=]OiOi&_ di0:*ʜ*,**j12ld=.>_sFղ)ݾ}WOO^ح0|%PHdHx>}'8}.~=Ɖg2ׅ꣌a3Q a UDӧ~6c&ɯ@7;j?5!<,P>Y|~#xZS4'QZ j}_DnJ`ɠK"j*G\=x (g\΄MH!!C,7Oûq"R Jj.GAE<3X(| kQjU  s1@7'< j.p:Kq0[2M  0v4@IH  AIKPIQ#HC0 2AA,gϯ_>ڷˏ}R2|>}gcZY݆m:g`% c<JBd'*:CCTF8,GDޙ('a!b&c~.=To.+~<& 1J O~h>>ia>A۽k F$S-4D=\M]_˹7pne~M[[_z׿ǟ%1ppMm-Ky{^Rfx?{:d`(yuR6SIxp7A)z46d a"7e Hb  O+A~2id)-ĞCݥ48,2w=F"I+o l,R”ԓm3_ոYh-C`2I@gKSoS,p{eSEs!)즹fDSC}>'@@a3#΃LDA֘BWӫ57$9D3dxe3侜~//N, `9ڜTn/Ͽ&=; m)^sû~=V1e#hqg\C|"J9_a؂FUPȉ4r:nCFQaLyA^r}|ڐ$S:&˿DȶKXtK }I(H}IBP) W#؞ 9jczljTDve>~^d0t=y] TFs8qcTPڽBoLG<7xz=cSH9d;h8n #kV¢ODT9Ӡ$|BD Q!Km!Wh(H}*|l?LH3S5g=G3`7*lWٔ~_(7O)ל*9 O n:\_tt}4#?O%q2p:cr2" #E-]0]9Bϔ"@(Q +fL X>$F.|[*µ~#SM1g6Ă 00ONj_WV"iьD5vf/ώ{E31mQɓG\`D9'}=]f.j4 s*0A&d&vrpSgKhk=+_VoabgIg]w<_cƒ:N1Ha)8̎ЄKBY[oraY yٲ-Wh?OØ itYH@k-:T;lfyס;1م2!7!j驪}n!סRǚ .9K:hx>%/O:^<Ϗj] C]kOb[(qLU dC*s'sw'&p,i0ιNϕZr|8Ġag_0 eʝtw+\`: iHuaض#wf1.U>ӊvۇsh67f8hŜ{[ϓ>M>#IH"&Gf!$> hF5?i $[ f^hx&˖=@>Dz9~O32 2*Z KV^6pNm]*] E+X/OuLV}%Q/ZYZ6Viq[$(X;uUHGy?_5`b 4>ވ~>FcU@mYQE?ܿ  qN؎ǒ쥑KXBc8/9=La7;3/sw΂%p2)jAU˓`r 쵹NvQy_}qa/괷Gק0_?b57@kKþA[V{8ꎕoKw$| kHq/ "ߩg9Iyg#`T ɰl3Pb|gu%wfzյН$ʦgmT̵H^ڤo,EB'*^BY9?~W @J C:M0 'F$b:Jm~rsy33Ot1uoWDE*.fܿ*LbwoU5130 WjުiNHgS6UUSFU9Sݗusj{rGP jPADQ#~2j*,KUU-4C55*J@UI@MQMTQ2VFdQR594A154$-3PKT**G&(+DGњ`QU5UZ̻eQCdQTQUTTp ϷE%QEUD@tj$*!w>^4Ln03AGZu XQh+(Qgf~#1ޏwdG~D @χӤRq\\Rqr?#7hp|,z܎˿;<7TbvjqI pÍ튛4gʇo'/n\urO쭪f-շۢ("I8&|6 O[sRWG}m]3eW*$'~;ay*P;Y'#Sl뱈V㗎ܷamvvݿ+OknI "0ܸ4LksㆢWx1HH Q̃7sGȂ +ĚܦCf^hպ!))i|^ KJ7|O 4Q*K{ʣU=p ר独9}==ywgj)Tڪ1p_\~X梣Ln$TJޛ~IV'?O<<ҪB0@ʮIȂt/PLr P~j]#!4C\9f6aobQ1F?a>ǘ H1K &N+ Mjن3L볳M :glsOO 9d~`8^yphj;p{-xQ*kiCMLr,JCX?jm eMI5300<ځ7 0L`'0M\j,OӇŧwǻտ> -ydU"{'uj4fs䆓 Dj*T*1;ƢDiwN$(3'p؜mV[zJ k*[}gHh?laj&8 Dʂf^s^K}׀^1rA|I9^$\RU݂4#-]YK|M4[Uח[;6 M"/sK# PѶC:yW]P v؄X)[˾Q=|3! 4yY^u tI={!w?`T<]ϯ7^` >-g{3`ᄘ=@GE:1h8FE+IF=p턉x#)) ~*jO5#DCAED I!UKAH7~dR)"z R>CM;}Y"zJW *yXWs+Z?4=$R@ڝCX|3T>A?AF<']rJ* %Rúg/ژGn㕟/2_{7â}1_s_{lmߵfC3؏GvI%<:>y|pué0C]O88LhyZwsB\ M8yzU1NC%rV1CTPM)ϱ .﫽dPxbvogcf:tӳHsy06nc߭eZeteQs 69}ի9% }ui],v<ɘ+l*DhDWP%42 ~cf∠FIjþq8M?ɁDfgҸnhSa V[{uCICKKK/3Or~O7W~gG(i>Gh m>N\Ma$̉H#YqC7HL(KoLըamQ4hg7iQʹMߓz;G7&dY z;teAv5vbfJZ=/Oc[ik5:Oߝm\s~wspI3xI!R-s[\$wwJ|7y}\klSkqS !#Q(ύ̉woi!هVlŪ[rx+=hhsv>k;^օ><>פ3֍ 5\a/~VLӰO [)a}ߦ 58Ò9tC41b8Xި^EK5Y#AՔrHرfoaŚ4FM"֛EZjQ#UP0:A9 UQal˝ْvg.?6}=kX冋޼P/FKM.pG>TXgoDD!@ ^!pi<< 5߸fIό«2SYMݎk9XK5C.ʛa.cU< !*1u]aetEb. [fGk[xѦ"4x&WouXHxB&ι|6o3+Өa4liy~3ƂqtnJY㒇yۃ{DQխkvA,\jߣUqIModBjexGMI0^>8xO@ ]#X~,iI4AuK},ݼ'\ql#y"w$i]w'ՍB;z44w'=lvl6SBdRG^ο.=< EɳO{f0O& ]mk% V:^Z2&7.Kᚴlq5}4Ql܅Lֶo%)WaCJ7q5ޫkA' ՞{]22@՛v$׭ 1'85:F뱩qo/n{ 8qGFLI3=R綶fo:`~J2`KOI}/4O+5[;o釖~ t_k`l]g5.|O@ I]FgiY۴·.~zc K[:vR]45靘7uL0F>Ih^끾W\(7Hcj Ǔuv7?~>Cٹ8c&CtSwީk>"@Q_ hhu.lO`їEV<SήR4Z;j派q3m+pӢY0مAnWw9DãCLCKa$ERi<'Z7AI&u6o,kP7Ճ'aJBl?i3 O$_-MY)mGSWw:vd8F87:8\8#ktܨU>i9t +vwHT2~/qC s+'8XFK.\!jsRo(pFI=,C -Oʴ쫠 ܍6pj;Svnm,d֘hO67P{ү醚 ػjs:ߧ 3b⤏Ũ~V9_)Ө1DMSaoC8j1ᵹ1ZE0]qlڬfLAj:xӣ4nKζfD9y.|meV8MdGMrWtlJ87j$vЬx=cs#>cw,鵮#}fgPίw:ٓq/*[hԃ\sAh.M'9bjJaWV,#+܌gV=tD#0&{NI$z9w2Z,;*U޹$Ƹ:`-Z4:f_w/9Ά7:1 ƳВUA {3t{i_J MpCŇaˍ:k*/9Ҵ)7&*fT,Tm^g]̙qbRU/>٘o)SP[)y|[rקmݮ1 $ccHZd.5DŚPHGE"$Ex@k+ў&v|苞@<}2;+~GyQE (3?'N+F&,>fQZ-6=y,~ך>鳊dWdj]V1h6#I9L6UXfAQ)3!!-;ͯ) *;Anl*klc/kN&jhU7Pd^@צ~ς8Z& ЙJ)ŒדΩ5 j1gq 0m%kEة10aMF6y m=v7U| o#iq]%PRy欆mñ V%~MZ!슾F|ÍP: e~*XIA6 9ހw䒺YAq~!agsz>t yk^#O޶Hs ku"oT,GDqA-"yfpIԺ͙~|z]/f4Ri1idFa 8ADDDDI$I$! $I$Ӫ;} jc;PĥCF; WSL,3(B\h%ӫ!VBςZϧ)p=9W8MAVj8g|wxl}@CH4PEHB4  (*}Y *2Ͽ.6h6΍ni~e?[>f1zvY}㈁_!2n(Drѵlts=6ԙ&ILHLo_U[l,7VcË$tI&lsw\d> #~vGa6řG?sUV oAVՠ4_}Th3$,$rI$!$"""$PPQ PPRHpqI"""İtH>qij&ع ~dE>R^HIv'Z:ZAT˖aZF2h5[4_^' wG}ApY޻p>'Ͽ2y]=~*^ Giˠw| )]D2){ӺB}|-o !)Y9ۀU^,t[[KURly@ۆCd1   2ԕ}>&t?fZ9m-uV ږl3}оkMBZ\(-$K8ߝXhw^zP>_{ 'a+}/)#,z5f:ZD݊t #De&N7S|8Z/znm+(0Z lN_M 3; 19#8 I~d @EavN-HZxNֵ=ceƴ<;0,D-g~%3 Vt ] 0)'(㠔Xfԥ_<4 #i!%y`FpwKL ]0i٫mxre24\ ~Ӯf,,x[p{!izb8G0I7adi[&B&(  * 4y(6aMV6@cRBP@v}t]ҷڝd՝T;i{ VߤfEW˦Jzv.lPh'\IJcBj !kpgEg =^YqfqdLf(ǛO{х{"1 0E:L$3:1mI5.L%J3z ppp\SF8׏\^)(Dže_g"#x T~G3@}x9Gb `6c>QgDu=U`=ɇ~ ~25/ָGvm3cAnY4Pu$9JJ;LwcĶKO ԾwvH_#E@l>CȀ1}=TPn e8t$#$| LZH a#];0e]%2wgoJN$qʿo"`4 t[~МRjeLXt&mHo$$L/Fڧ{`PzS6X.w {r0;`r;ƜzJqDD\ùM˧oޜPA. > 0Gn#&=e%O9:@jSq=ʫc}ק=uW߻ٲwȱ*N*mQ&{-O#ڦW,|A5l"!㥵d rZ@5-RtCܖߴM>пou(5 =8+TE[ͅuJs}=5\nܱy7&E)ai,|/ct5X[1,0`:tPY!$JKWY%kQXU in{<.7'("öDX7<2; 1l*mQ+R[.ULYqyw`AݣO\ߚxi$kUVmͦr|x=zhW^+Eހ&ϧ뇡˱jW^};H f8EM2?fT b tƴ+/fR=lkSlP¡[*[2yk ܽ2-1º>u9"ƴ Y=\%tviI!,l#MnUZQҴB{z*/jmHTxB8V҆m3п[iV8LJV)>Z_1-=Xz z%4cc7B$ݞUw쨵2̸J.9H3 EMQנvW5ɑ,eTeY3嗌^nO)njCzboPG/KV"gpn Q!D东[-~z1^QϮO\= t&FVN5| }=~y٭Z˻#-Zz$آVQ6HaV-UIZwtq{'E554eV2+k?Nc 5W?ʾ~S>}~˷g/W=C5%"D`S _4)7Měm11 kDa2K3 BATB2@]Cipa$T& #0(X VRa"dW*0Ais*i.ưfZe~oO8B"(+~k.lymTyU+*i1,< y*GўV9dz_Iwwẘ(IB^=dW|6_»/DNs|EOdWrIK=rQu K]4f,[!ك\PDobkꐺ^/#=IB:n;<\=ݧSvOb=KV;WrSM\b6:O3B.U:%E.UWko62m>#^7ۙ9nER/z|jzio)&tQdګgM-T9W'X65xG)JK>A, ut@$b lob%OHBݮNLshsu0ԭ؉.VӅ\ g\ZB:J^Ƌ=mQETz}3=ۈgp cQ& -,ׄ2 =wIV5g:Bdf槙~Yq/טhX$o]Q,8Ҳܔ[&da;v=+k4?G$\S 0bB0bE$bʌ"H+%F@.xj'iJ8j=e 1KJ¡3ZkznVf>_/C<]('!P41 %ZSq@ *46!W7 9Ըo )|<,7+\f7U|ǽ"W®jc0X>;}& DY[grE*GC= i[n#I.>EvXjP#w[=צwrH)XO^ 8C %z?dW)hj.i'yYCF^׳404J]&zWqyOjFت3j| )Itwm=]:\-, Ml)U/SǾanK ÐtvikduB mo.i"l‹MǛǷcJ!b M?2\|5Hu\G;S. U8r*2M&]$ gY/UVqB-;9ǧ*>;0Y!4U`lah.n#Sb;FR}jn.$Etȴaۋnq^}Ô !*A_'=>F^Soz㺌Cۿj nk?L_Km۲j._v8Ӛ8Ex4,31midڸ!ۍ2:KoL_>`W/یesό#VuXfgc8tvueVu[Srul1%-ztwZsX3R!D@w˟^{FL`̉M{%Fzop:m̊ykn{+>g] tk%#lk_m3n#eOUӺ1Ɋ ϊ jNX_GNb1Ռ<* AXѿrh!4̗uWz[8-܏Ӌvt';9zr׻ Ɔ:@n͚UPX#@TqIkR Fzp;{"6dWm4K o Az_G;sKЊ(QQ_0)ic׭G ,YBe! 'W͝:E@~WsA%*]T{ZΑo~j;7}W90M2۔}?䟜B{1:Hpaj0#VhTDңc:YRJ8|,Tَ9lYJ_kXP ')K)Jl.ɽ tmn #GXv@TYL}Xz1bAg8곟|7ާT"Q벺trgIfջw6F-72uәmC³r;CʭZ6SB>}aQ.M-@Bs]!&n0UEgR ,{` R` aqd8Z8f:n`!W8*3V&D$  @&̀%1rҋoovPyE!KztF$_7l%ʰYDEZAKqL3 Y" ~Y11-H?9w!$8{ٹVV>yaj]?;o'"Q^BUb.hUUn%[FA7ᢤAf?>IIn?g\|c\ f^+^/C o//jvFeo(u*^kZ8몺O}!I!$bD8zmw##!䡚G6/>0Gp\gњJ=O",zY\FP>)2QqeTyDoͫN,x>YvzWZE;ϖΞgy({d I{ZtڂbְizTR!һϳjgTvRI@'1_8{c*׺I Kz㋯g+zߔz"#w;91c`pڄ LM*;Q886tm(툥\g<gk\ g*o9Mf9 a]'Q-gV9>ƟZ"uw> ]6u3wlӱuX3=f=xǯMlQ<&=J~H]Owiu'{3%s.vp/V5]!1{.597ftdC^+8ބ⯻wL$\Y~6b}A޺}z;_ Yq DBI$IFcđ4_ÛjWsC*`!p2Ra#8@e:tJ)O|]]ls'w\$|WB[թZ@rOF(ކ_ܹlHg>=1WV0}Ƭ1}Q(YtH<ƺG%jUHx< f!!Y&-ܹ4uJR?j0x3$j1:Vz% J:w9;0ʈY_G̭7A{YÌȪ~nLs{xm}nO꟝|!}h&'cC&$"AD]׫kY%]W+R˖N \^27\%SaLř0 ) “ ܵfQ4 +/9KN6Y] "i(i ("Z"JH  *)($b$F``"Y(&")MYr4rd)XbR!i@&iR }kxoӌf l8J9txw[{ IA(4jp@!b@4`DQa9<=İCGyQT~ m5nҖ̈́%+P b9=pSn 7pc]| dҭnxN $^3uKYY7v6ԡP"pw9t>}عsҳ+_<tʲ/zYO>NV&&kL m$RҬ@մv$N%}ˊiӈk/ŋS:1l}V_;3$QJx@r BR$FP\.'dq#H"(2HR%ZB b() B %haqoDl,:+\J"%A:(6o{@#Oq0vCU9II0s(T#4tIX5~XD#NdI ^{OPBL? T&C `|rbm 2 QQ&@<1lRi_= Hu2 i1û}?MF-j?6`*'#)cRs) b^r8=]!d1^ɏ<0vh~ٛDBg+eÙxC,Ploxͻz)`gQgTж7ec5Pwh"zjLrYzBszʜYnN3ye6+s!MJk`X/ B#Zy2)%n2G׫FnߏGX~e`!Հ7`tD?{P 4lGDtgj36S=~ɛ\/^SϕhaZkKTw|~0X# }Rfk$𚦕Kb;vz]\%LG[NX7q bH! > '"D)#Oq4w+5{^X$8BBqdEf؁ӿ \PO(m\%ACQϘ6(ɪ,ge`XGWKcy'#FEX*ZtcIxd<(sƃ[C3j[ VIJLd˕ϻEp|@nnN؍ 0!f(`b!J Wa !`%&@L` c\YbMNn(@AQd>sSf$?L&IL|W 9/\$i TEW8D$<`d[L{Wh_OFU"HD7 dDa` =cCg._<_ݎ ؇N|hL>VLg¿1)ߧAvnnݺ2v~˻x:gH[ʸVD7+UA=ԿP{緷*9y??͟ կ)g?GL#:F'qUu!Ejnv3`13}|D& }?˧|}=M .. Y*"d%w=o NМ]Bg#[7W/}E31L;3/ h0>Pi\p,Idh& Ҹ8ea2kn<ɿuejq%q #+9j  ZjfŅm,07 >k噐IIfad#ҡ@\?~X?ad ZJ qC`#A $K:љxCqinޯXry!$>cs#;zYP#0#&?;5˹x;ЉKn \F8j<(IN 0Av}l)[ܢ}Łhi-Z?6D h"30-ZS8dPBڨH ЛI1wz38)R)I(gml4hEYbhVDS'C/M0L~Uޏ2ݹ1Q1|lMnhw Txb >&.b(5?_7FEkw o=CYId8?.ڛFK?~\%0t,GdsJ2Ld#zG$S] c & 2&~:QK(#9ʚE[0ZioFDN<< M(xCdY d$'ynܸ|dSQx|WjK쨡pљPoN8?.ϐ<"%oO5Fȱd!1N93 3yPvK=# PaDấ|A #n=IʸrA *,D<9}V;:jH@6L/vׇB5?}Gėt~X.Sy13g6&\YI'1%)m0"gUn|y6@L-H /iv >69HT!]0Eľ I:]1Aej3W[K>ЁL(]@dɃ1@Bbi.Sa66QHh)kM> p;_C3ZHO b׍_vpX~[O^a& *7Y40<œZuo?!8 :៏Y 7k[d=ABwR7{\V5o<-l7U3gNKDu Xåy k݆4E0r:θ7; ctmP&gYH5kc0sqirUr$|<1HXg|,vs &S|9td+f2*5sB$"9[QJjۍoa9mlujbC98ADw~k #1TQK^9 b.% f+L3;bd\-D%JDL!:9yCqDmQOaM e {49AH-d>_0a8;7}h1mD fkn [7vl$0D%ȟ<N[]uIՏ (ra۟;=e:7Q1l1yڵ}xŮ.=Q]DthUՂp'^L业vϿc= [T0VrB7EG9Κ=d4kPJ31`Z= &eI(hpTk?Iֽq2xUz^ez^Z9S\]Twg%<VB5i<[.ՐLGp`ɥgQ+NЪ~lw5 EtDA 8vkcB`q|+ @`Af%7?i񶢝Éĺkアʡ1A!'@}9E-`.5՗{s&.P4 &FEhWrTC1ĤUdPV.x&ep|$Jushws%ð~$);Amc}<[={H{j塀- ;m`KX 26nB^1dh)̏^46~e6oyaQYf3333,)o~9$82pd]`g5!P#8mཅAhb{"HRiuc,~<5 ⃳q21nU#YEӼxlDNFnN8k{۱Db[ -A#| D|8pxm Q}[hodNbAL#u;ĊHeQ~xqb0UW<5;ˁC2nEXp9]pPCx>筿O]F@Y3W*Sc-TՒc"gKȱyx{vaO4)T a5iua 7f@+q̄{=|`CGulBm &&a6E!9y5=6OJSɐNYx ݏ(nP7Ð!3%x@RD ,a?FyjH1G9Xgeq@Bil0@!0D|X9 /Tiώ:Ɠv,2;㐄"t8<۪i2LbƩd\^;ThMW'm֚tNsvXL0!^tV|!?C|>6@NTZ(wrrTXȵcpvJ!: ٣eWEݳo詳aGLu&3 6j Z?5=쟗, /vzVGrԬ*C3wFbrDzr3o&i#cDY*4G`l; I$I k4tb8wUUU #~ziϧ^^p}?g^M'/MG=H~$|c~K# /[ѣ&|_KS-4'Sh2Wqmh|>17T@ۚ Xog˦MP4LJZg;uzS[&: ( R+TG\Z2.!1¯~|X?\:g7l.}2m%fvUӟ ,} y0oZ&sUB;<Ĥך"J:fHSÓV8O 8(5Fij"iQG f,,G= cBxW::d6[@@] Mcއp VSߩTTd՛'utXA>|67-)fFM Z ]P[@tgd # -yO1mѰ`yvdgob{P@Nl~X=ÊfzGKvZ/W{B0x~-gwl8ݘCLvmX}wqomn)̶s~M#iBE]$2lTo9{8ˢV2f뇩~Uʾ*8"OX}k&s NҶ۳9?.nc3ww1ϱR|nr)(ٜPk^*XxԫgUoUÙ֪Gy5yy{b14w6uE|RT 2BERr~Ff;[^AT6V1D첦3v7鯪~iQ$dy2g:weOGCr_-X#jfaΖaJ||2gn I/(wtOv9 / +9>OogO7㪝3i`{ я'1V=gوGfDjSF=O~t5:rf&tuK*xNgYYTޚmT#ܢӢ` ۑnvdFk]6;uCF\{lsb_+U1_f;tj6ٚn{Mbxw|WjV[K-ȷGqDЍ 㵏߀ރ,oW0Y[Y[MGvXY#.PXt=ִ61SΏ%U7fult5TdhNWYDv"xYاnפӨnq &-LfBf#vop_ Q)!ESo>4%}E/ "Ga" #<3SiN><1뭈l!eASxYepKcyxO]Y2cL38Y]{_H7Mݰ,Φ:8@쎞3hJ)Πe:&Big%;D;C7f/\]tɴ^z4_8Ex 0Z蘸 _4l>RޤG B%R)I h% O_5A}$r\,¸u44FkPҪ J :ziY&k,lf9T7w A 3mA{|׫2@gI K$qÕK R=܊,mϕugFosۀgWAm tĴ!nkTM16լ2#=`Y\_!&P9W5[ge3>9 1=5(Ԯwbew;0M|w|<U{0#tuHIf~mRz$I$?KqЙzS百@P|;oʹP{asW|6-W pT#q6Ҭiu-~]L鹋|Nv]C͋J!9 h!ĉdʅ-5s]HNRJ'۩mS3ya'4ϳ5;Kx.Wxu\5զ}pljzSyӢ^n˦[ O5cqcb>ΐ~76ugӶ9S +-_ڻAr54e1˞5ߣyyF#>wtmZvVuv${hY G C\3rr•yLOe:c) -y+˦)|lWwS6Jȁ^jͪg:Y])\DŽar0+aѶ)ϛfSbǜ(泶Uܑ\PDNR%P[}/`^@v?1]'-%nﴺC4Kv0 ς ljSfmS<;i:qw=^Je^igDoOgoQ:Ñwpjׁ~D~~ qf|\/g!NG]N2댊M nN?QepUU1WU/*k`0lzNw~z2Q祯}Զ?l.΢Y|\|1BG|MKX'\?zl l]>7ć.?Xe}Vlj|fcrbͩksWw'rf{3,rK6QSGSʕW eaϦն%EӾt6wQ!{|쳛o /@@Ha ufRmP5;nC3D+<Dӷ0Z5: P]%qNgB.z]#Z@kٰcs]xj8uva,daV}xM^lwE qFvɆkL*=WۦyޚiRk2a02`gL_.qjw_x/ĖA1]5Baql=R=WC1%6bގp-Yoń!V/'+V[=Hđߢ@x  e`l>v?:䏓@60 @kͲ1 p D]Ep5kp4F運. @X> #0Z;7Bv gkhݤӋT>lɴ@v3⹸Ǿ_R 5*,a &±Șt<^6478~z6O3SQ%Z_Q<Bz .QU6[6VXƞ.bFҫx,op$-Ab1[0\$ 9ʋ֕N B kqMpwQ14;HZgZ| i!5IW7+C18$\7f wEUXvϓZ<0irw1:N­m_X7'u{*9 1-I[7W|kXû͈ F6(>9qEH!>哎DIavw-nBC#"5 :~6Tgymv٪;:,9exr _ YF1*si0ӚؕJq6v+xBѲhtF I3tufFЉ u_>G@ߕZtd &p{a Vtid cݻKqqW3^3nS9PVh&cOk&*-&PW}h~F[}jpJ8o7M9[shE5\ap Fhw!0HjJO0]i4fH0z:o s©D},~/: 6Ll+>,aO ŎnzTHDᾧx&3T ޏjsS= 3oݧMlVZ|ll+=>{#TO}Ļ0m&+N(r0;[l}08tSxHyr5C 061e 2ԛA<*MIIz*eTcr1!Μ4-:fׂ  6bgsa!YZ^۔9\3A{IpT`t)BltWBUҮN!hXõB f,7f  M*sӭM#uЊoCqjMeJnD#oGxOJ8bs c0!滁&1ji*B)TP2 9t\AGI "M>9a"JR Y7+/HW(z_~UhLk{1i1ԝ$SEC,k8uU^׻w5=,~'`%B$@b#mG4ȵ@ KV,1[7o hvL!cz򔞯_ EXc!ږigz袻{ǎT: 7Q; $'v|!k6ZGk^8|- fХe=a^ 6-1!g,m I5->SD r[(iA41ĀX1lPCl&6J0!jTă{060nOܥ.Y(C$dFPև^7eLΚٺN"٫dhu5@PO,{C'\-@`< !6Q6Mij4dka`l"N]#f!:ZyEdJ I an&oHs{^t^ݫFT.r_ۋctPydUyQ]:q?x.;\+(=*~x @PRBT C;c]+-o5aTwcb ha^;7gk$ mV #BtϑS) aD,*Ըz:R@'URHcexlUn7q;HjZsKc! [ޱIGnb<ɥU72f`Ӫʲuo9ƳڝؙxU!.{hLg6~rxYb|BZ+4sܵ5FӇx/e13>#CWkAw3fgYu)}GWW37ņDYo=G3r!u2&k#'y%&jw5~M<Z}qF;?ƍhߴ|yNyϡ ?AgWI=\]>^ce7Mш'уDłu.M:ĹS5"7[N!k%>O>zzgMj{jc+fx8}b-{2f0Ҧ^1tqur*i^=[&_*XH02s$f<9jWb5dm2zSq),ft`h: n>m!V5>c<wV[̺1# ^Sq鳞zYu 4¾U+ Ό*ӯ/Hn.Fcmn &n#y zirzLO?;SqAi-nNŒ9ϲ7_՜#;{y8;L1U9컗Wl| ~  |cu^rBMތI Fez(b1qAكQ xr-I ۫ 1RC3'Lgl .eKI wtRH^jK!: kqɵ!ʼxpկ?4[VU(tLmƼ~-m\z6:8Y d8/[d}*Y ejUf|TUUkFdg:ݣXquDdFsp>Om)}KkXOS>KˬqpQS>ՁG(l](6b iBr (t3.q3؛$a8-{ԃOMwby|]Ah~~[ꂐ(M| 0(fZs L,,lDj\8pJ-Vdg#z3x&F-a38KJm$gL#(rM2L-49C1QI,"(3Ģ$Lh% D3 b aFvaֳ¥*h32zaa:6۔?+&ԨrlђD~I??-3d7WvwG||ǒ?~șs\J2Oowӂߗ4ѷP]c?l? 'wmkAB B!Z(]Dm$WH>%>Nb00bL\]ue]13SõÁD%wwy a`tHk)А qŻ#;L{j$|[ّC x9@Px"pځ6usLU9C ϸKq gHlق}\yv^d?'FbIm. ,`c~B&;Aە!=N}}d@|I}6mzx᎓ zyt m,,JEIρyvHR:|(=N;}^f K\ ULpa|'qC.=9/V4kÛ}4t ,VH!ofQkybrd=?OxE#,( IZ3VӬyJ~YE1!S[䘀4VT.!ņaUg4i"RD /(Ya 1::XffIQ35$΍RHYimI m-I".fijTMoB|,m2xS'7ӑwa^7ԥOQ/At#;dlzѺioƺw%g|^~GmaX;=#̈[m߫zsor(DdDu-o}I $02{ܨE n=q^&8pݫB6]m&?ELK͔3Cĵ1lmEɇ38A4pO9 W b쬣2#@4Kݵ rC>55\H]ر+UK`<zulʕJpd ;9Gfc$YBv"!Z RG %lao*0 ݽm;~D^~9yXS$BL1@3?6 #z_ `d+ w}i&Jc3ߗ-'_r9oׇ˗g]/札orJT.W_^1译6-￟.|ݲL>s:-0ܜpX/MyjfJ:z~:k7'}YowOJh( Ղd4jSV*TQbJЌL*(,Φym sF5BPΌkť]!8TQ$Q$УC>}̓;H4.y Vb3_pcܝQ-± aY61OYd;㐢r wAG0=GJl @3Ϲ4>7t$\DoL;鈌vQxX yLx1nݍ VJ,֗ d;Id"y oϰ+l%1=>ÓEJBz+87aǠW1#Us)ۑ!A$~v^sᬆ3wy?rRhfLI/l:ZSڑS݁{ cuݢ !C(ѢpDb,~Y,1RՌkWl3`vƉɪʷ> 7fjEާ^,^Xc% a(ُoqټA)F+*gfp!άӾ;EGx99*b$ût$H{D!ϟм_0A[N͛a %z%KM!8|Ƿm>Nc8z] BeF  G˽mCDUm]eg)<$veq8zdؙdntQE0blf4 =E\H$^DgӮt6ڠR'ߝ*C@4U_\'5̿P-5;:!˳ l̐0Dy$2T!lȘ)!P0og҆ g |à 1m@Ai +A (5qI0[~Z bQwh6{ iCGnb oB1bC9kiL8j@)47[G'oTR&p#J~j]~7!IEE7}nZt4߁gJ[RH\/֩W;H>9GwӼx&r vd3t1PLDRg3}@ny8@4<TzMN 1*oQ[lhWm%>zDUaى}l z1$6=Ce1%H &DG#q鍣~uIA#)VAEJ4؏b?W E pwz`?0e}BWlR/>ǧbEO GPƠ EfR̂H88dyHG|C2Te%sFm 4JrO0~F ۉtFLRVIn}&V>gܓ$$ &0bU!@܉/m?"EX`s$crBz7AvtrAή!3ϟVq1Po6%qBU;6G'8p_q2{JɌd9~I7.>p(U܉za!(ǷU;aPAX5U5d^8lGAxZ:˳PG=lnF~mW~s5N—7c.Lf4se֞ywM0%:[4@*r^\_La"(Sl}7&I5&=87dc/\h/hǦ3YD(ruZ[ x3s^1m_%8g!垯g5TtM%8FPD]SAPv33BS "IELi(ɥPX~ pmHx|9uaR32SMU͍4^ƁkRAV,a^{W[?k̒HI'VzmWƂ#"0;3{ua!AdHBHO/$n]; 1skl!^[b\$+r ܃tXm5 ĖwvRsH'[Gkh%nƈёN aꇍHbs#.b%Cq=đSx[8LMc8? &F=n9J!dz91ݨo$K教gqƶOqR!1dOn KswV³OOp4dkEOvWn@CEYvWdI]|n鹐k5m'ȏT%x$ fz;XQSW0(^ÉR\dV4 [MOumO88އ\J.10bDT%P0CV(Nm}_8vb- _Ir;%xPQ*˻CY AM]EHLAx-gc n$F$CW߫IQhʡO"yfζ1c<)xo}|ٰ$R,JVge տq5'_fn7 _6P9XǂXwww۸f7mZ۳3>qiދÐfJMnʼ79_l-P/}>։@? lֻ1SŘ,PdׅA%(+)w1˚jo>5+GH^rhӰ-@BbHRàENlMgx&W=@ܭʪ7~;ٙx(:TqFerUMVUUTTEUUQUUUUUUQU|!P#BƛbO?)6މMs/FXO}+ݞmZw5^9 7M[@OU)[33_Ѻrָ.kWP\c?3 c^CDC^bzXRFHm&֪80gSxE?@",([B4#⥑w}ݾq[#W4{-)(TE/0+$aJ\kO>\f+7B?esپ[jv'L/.R|lx%|Ar88jy!HCq\tŊ`bCqJ3(My8NzF"UPpGǯo^+sv'DV hd\tȩeJQ9ሪv`秊 1 BOFIئLhtY6u!f8k3"b5՟񁢼ǿa_xeD5{ ւ#xuA0!:T=Zu+z׮)y쯪 mR9ldyw*Ti]ϩ3 ~vďq.Ѝ(Cycj0d煟 ~F6xy4o3a^I_Y A]k6wg UU?6}CR<\c-3,kuFMOt,Hs'As>3^\& I/i|3vp~t=Ѩ<3pЎ#0yVz-v%_kpP܈}"'.7\9tCtR4}}MЙ?;DA(~Wq: (Cz%u%@q铿\?X+W|ON^Lx&Gj-0LV4r&3Ԏ٘k(' /pV{:m_O?8HC;ёm:wp$&'[$-#ŊEGƻ/8,sϯNpx. ]7VD-cGulrO-Es.~(fmp1)4ۖ<{ 8k#]2DNj5wB);YJ|wDcyaG+M=,9Ӕ_f׿nygfVթt'q7n*"nwǯb {_-MD8xm [ )Oo} _l*(!b9&Ož-d;b=:mS̹a<[Z~}sW<͡ݯ+5̶6[aBcF6r6S){rs(HҌ)M=JIk=UfVaҎSZ]gwY+[1[fX cw/T]:ʻѭ}<ʙ5;KyޱQ8r+2\iԽkU:Z}}>su/ūRgH)=$W+yS~bxEu!dF!tK7]0"{v8@ze7ݻT)H1)J\RP:\񚙵*&Qk/wƝzSǿy8;ycwpq=ꪄڭA59UB5^fZ4Q:еJ)ҭ$vy'xL32QoVq>!E=ꇇKYR)h0LFb0b axD f"S+8uQR|\8zx6KTi,ɜWrD؈ 0hكF4hѣFhѓ&L2[!&:l@kuPw~F9Ez[LȤ1QhwVqZ]~Ͼ~Z!wnۿvlf+IS%YdaLg)m r{QKo|ڳ=C>Пʽ׫P^/ŗ=Ua[QVzЧFJXhSfyCe6dʸ{W cM6b@$l|F7imu  J)6F!fH_{ !X㕐 |B mZ"PpLA{y+-o4Lk: &ݖD_09j݉:̻!^z :G)D-QF^0h.9]ˎM6 6W*,APJFҩyRIUۚD+-“ja]g]]\v0`=x;c5)gx).|lU-J׻chU ݆_4vLgf 3Lg-T~VD%C2+) V<ٟU[6EUݶhVU5vx9O66z,zK>\qW6t7>}RjjMbڔ kO}fLa f*+ųLaLJfU$kY\j<*κqӎ< 6Zuij>1ŢܼͶo>9jU Lv3κP=|'khݺ}>hjn?|yT> _fW*_2 CMA#7ΝO]I Yn- UQ` YWyCt||eZHY/X$swN~C'Lkr//P}nibM-=_:pẫ\z&!7d)-%!TH{M7p\F/UYUZ.c0,9q ~]Ne}Z7ǝ84D"yQ}z$[CcA%90`4s,M]>6gb02C5F-K=ϲo,{z|uoynjryW}-cSO}CI1f*jvz(+)V®DdC^GSUSx( i]$zX)!k~.jQd-BM @+:V̓)gD6m 2H¸3wx>vTķz+ ӻMRPj夈qH,F^>+9WZ]nMԊ% ;  (F5E#ݏD]hr3@9 FISLz=ݫl/d-/|کGʆ&:`g(Cwcs:ѸC5sdK>&RMaUã! VGXoA 1nbŽo-o蹯H~?~# 0E ")dhj "bi !٧Jx"!@DQ; #  SU 1W?0[6)8$!tPk q7?_:Ƥ` SWZTV@gԏ ')JK% Fhmz ̻$xeAQsYY ditQ"AUcX`i;8ȯ!}5 Q\N=⾊ ~Bl!J.բĤ7l]u/Z!&C᳞9 !ʊjy/w)=K$H#(M!HRs ۶: FFU)vִd JG2/ ^ѻyL2p 0DCSM!0;`SS6H' ?qǁ !Y#XUPXȌdQ;HT͒ qh3Rm#oCxWi,5F" !C#3L.DB$0І Mv8@41*:2@3 PgJl(  %.1u*P"J< JsX'9Hj ƃdqvl3iEAudQ!`2LM 32@r8}A.O:o1m.x=޸yYIUkz6٨޺؛C([4@s@|s ۷Ql@%>h᜶\Ӻ?c\F9nO"&a\>n0yL~O;E-wlH|} ?0?!#nJX0i>S//۟RDnO_\z&ӣcU24]CAgf9K -0k"#bԲjW?[*Cw@Ta#6C99 'P#,?[H&@@CNc=Ç&*%vpJ8E=e`g&CQ,#2ԛv5&?JA*I(i"=]=YٞړHW8#5X` ~iMJUTA )Zjh_3$a$I0 u S]ArX:aݏ>}kYʆU1(o6Qm}r&bI$7GQϚ!'9CGVrJo!ᴡv5iio4C`8A3U"hXͪI,t3/!=XU(B$]ǂGҟ <`Y[;3%*}4`u~F ؐ^KGMOԊ/1`"*Q(ir mJ4[ɚNOرM֏5uxks?Wo:r cZ@DbK_9_>>d#GlC,Ɉo7F@GIaOY\R ,?T QImnC@V0GF1BCgo˷+ٖ1 ~ẇ_wKOJorr" Ӥuz}cCF Q0& w 4r*r ʚ ) "ReH,vd3ʩ4xٱ@9W<42OU c4XR/><244=V)f?8!+"3 !& XIZ+tP_A7-?'-D(N̙$`'G{*HU3]rG1vOa0UUUUUMU=cbO9Lx]ݠ D<3cӽ"BJx7$E "5w % iCϠi{%Q=_)qfoRA(`mlWvPj\umVD}6_'ŧ; }IJM„v>;;8ICf߷t %rWozҜR*Yܑ"I"UsX~Bf =Vp?C&b`" I)49c2Yn22/3CzB: NC /j(P#6x o3vr=qgTo;aMI$Cuq!A5OؠR7343է^dDž˞v@0(0.TD̲vvz{s/YR~Nq~,Ф9ׄl>Vx3#X[I#QKL[1+H<`~Og\2[QFN%M^&TB5C3g!*u4=gM޻о#lLKΝdcmeBa!uГ߳xoT:D,+K*Z4DԬ \cKfk,i k޵yC\{qTqI;[!xfZ*߫3O5]Ռ4{0%ِs F"z-ؾðOl5so7Tۨm(~=G-h\ȓdV,!(/z`0UJYIOexM5Fz3:IF@(ͮãZl?W"FIZ0t upv:ָ"Vɯs;\kYz9Zh`2&Q 2Du=6^`Xl3F,hLp8H.[FH8Q8()_hDA|P8eqRM)yj#4概9EiOFl wC@@*r ȢTA |{vՍ>?g'u f,H!N?#Ӂ`i46S aF1d /O,m(cs$2h2̺"luyb8ehifT7Zcy[i1u" UObغ7?J<eq5CAթ'T43 2ޞ*{wl~0@}}TҍkNexLmÜgoCa.A zRmvڐBsXܐI LTja#겜Ga C"1ď}$CcDf@T' [uH\Hq\"%m`9]t7b֋NP`4k,rGdRե]N[g-1   'z''Hs\"nsd080A{,lILE'x %FBO}U˧}/&q(ʽ3pi{N2Y)N+q|yk%[sS.+{juYu}v_}ԯ @rs8iX/:_-Dpw˞y#J$JLH*D0O*&D{wb A* Є&1EʱPt5i KIx®U^ڲվ\6ZyCg]cqv8+|'J`R$?DGޅ=~C3EZ/=>s7Vys K~%TLz!M20X*m]-wLm]Bj@`S!~^}۳#!, W gCe,ĤEKCAH2SLـo@er"'Gl*5>=Ejhf0 ޷ I#P~X)ħ!\ab(N]ϐЛqZĵsI:F|уzє rCNF>C2 ;8Oif8oRjhFq6 s^1jD8 TB\TPN> qAc#mv[z̒/Қ3WD;i#.8˹xDS3U/zkeLI!Kb'Kvn8⯙eEj^:1s=uˡj&A9;n b%E].9O8!R xR/zoi\ѱ',!9͈xk:5)*2zA$G [khrf͉~] 3٬ߠ& GdHwrjUU׭*HHhC@sLf*!9"S.[3ޱ C~E2Y=YeJX_rG $Vc}>?R\Yn~o@~Qi R:;.0C0޶݁ 0jI Td[o>ꩦHQ5aKmAH٨Ԧ[wUQUMU2&뺦@%ri ɲL-$"eT#$pL7}bu3 tHEJR4I$&A 6>e67,hq0`2vH,z` c]4;rk:J>Ѡ@d6@sZDZ6x: F\,%OMHا8iniDm &}L2'iH.m3,uՂL3J ,P`9j Q@N bJ iG%FP V#>~]KW1[&[<óC4 dOHٰkd{;Ld%ݼ-chq@U}5rs:̼`HQBZ!`pRⱤ R apTt>9ݘ M' Fhzl!@x4CW=Y :'T?{=y,EaHH{e?Y:IՎ|%ASIUJUi?V #Ʈ!i imcR13"s+Ɣ܍٣q: ;1tѪѓ!&$m r 44JԺSpްšAHoq C h6vua":A١NJ2s_a7`0"3 hx8>Ch}jЦ֝q-ݲlyrKo:Tlsug+U,tU1Ӟ|0-ϙ$HDǛZa M T=0f,J )bWg(H H~G"\OŹqnHc3 CvyrH:@S )+fyog޷cAvBH?׃A~F黪1~ϿF1DÁ^| A,i$ѡ SP0Y #wZ|ФaU R9O3#BMP V$5ǏM%VuCT@ӒU/K]#B -h ,Ft9@-wΧP/P(^"4H4 m 6Cշ`Ϧ\!h&a\ WYE@k>w .$I8M#9_h.h gb@`yh0L pZ;ױ<3*`56<<%G7oť;P5,-!$atIRy}XK:l ]8 zXINq^xE'l@cуߡ@'厰ľWN@?Hx;5;L˙s4q'raҊ~0˭N&e#p'A!>x靮XE {@RBUՒ Ŵu@h5 v !"8t_jdX SwF0phkG˺ }伷j`l7ɾI`">c0iDgfta$4@TLwϖϣlzS" jb%Iu=g-uw5g6XQTo,l؅ !ҳe@R@7FǹaqWa}fNG(Æ/N|Sahf/.cÌ$ 0ddX(YrAϘa5kq.Q0bxA$ Ƣ(s<ZSDbs终WJ^Y[ HIJ!pkDr?=DL&@{aѱp`YΐuMO7Z=Sqǒ1))yiztE[^$?h/ӻU;>yuP!ˑ/A%i|˼}&\.#zbmapd;RfS|pj;aϋƼ.sJz(& Gi鬕G"S!pzbR SPB&$ "?_> ˚n[ N4$I$8a:Gllmr!瀥MИ0S*#@ŕI"3B .+ᱛxf.dYBBLhsh5 R!ӣM]j"@8`CGhRJF>De&N/Dá[H0*pc\oK1:L?yáeD}/Ee:A^?9]аg fkWIB"Ղx†%u("HhꑬPԈDuIP՟a2;6:b_{&`%,n|ici[$ai58EK dX96~u U|8i ]m%Q$MsǑ؅aX ;| xp?uda T9K5{U톯 ߤm!=P_EhxCy:H$_#%IA /QhY+H,w%%ol4"0 j3I[\`jFJgR"k.  R`u$C6P<n! mP\h@ÉQӕNP )9L{h7*(( G%vWp>ij{6\ HB7h}F}uZ̪CLD<EI ;9~w"٠&f T'ti#f'Ocnɿ9Ζo'7=QTpƠnj#nޢCfO=Ddi dݝwIXMQ#we61x-;'P%rᡦk[a%[`B`( oO"h@Jpօ~wp-H JEb<|Ïu14Fh A3D>h\P\tspwv,FkA2^ua0MJp bXAm#ɰw#H D`nDYӈn6q&?#X! AA|U6Ζ xTiIP'A~}>]U~CY?@# @@7 BPR:]<*L Ev9 9v.)a *frUDh>?D"GOOu=><*I CyQ} ({=1OQ/ +ӳ0|\PBDVA >1|q?l-vOZ|I{{_d ެ< |]'iŀrUCkЈ\?Agb!lLS\B1}ae)Tv&P'M~rjx<C?MH9%78򾝉T,%@>^ yϪ PG.k T>I]jQ]^bz:|nKoB'ELJiM= `f aЖ)v,r`ɽ;nLd @oCyHŸrZy5AMG3O25`Jn`#0g!\>P1=a1c6@`iKLz`SREHQMHw'Gn4!5 UEP %%'!u **P|$l +i66< e˳7Xb5O*o1T"bN#l0r_ڏ^GOǓHvbSoLЌ(PlNDmfq}ᄋC?,c3\vREG EJPIYA]jD/@2X/ECŐ$HIGAZ1d1G{vS >O56Ce<{.8*q0\&f[f=T"ER7~HH&bD+5ɏLNTgBAޅ'fqp:xEE0!ggCWu3/iQ18sQ婃w?_{7JI%9{n~<ͳsVnlVv%7w?=''?~N9zn b ɝ|_9k>wf^O7ct[3< p k8l_/uv_σZmkHtp"vG’u8s&sйW?2?}xĶ&};9e+nϒlqfxt:I6G`X)_⯬NИ3&AA w4Jn#N9 EotYs\5V&~$ٓ-Y]NK!kU Ud!r~Eix`5kGrvȹ[; ?ͪTyi4T̨SN!.3?@U {di}xm*MS {! hBqf d좚D=NdNG=)1 r^/Ñy/# ecs>TI}5RIQRtε?z^ؚFT 7IzA0_M_E")iI$/`g?#_;]{sSI>ZvRZKS [ Y FV5p"!}%W4)U.q->fd0HL{xav2vB%^G SWa jˋ&R@Q؉&xDl]=؄;wb5BQht7JgmZceCyw̶X uΙ_r,xR'%Q]$$sGHG;fyHl}gCNbZǚH->m~= ybsljR=_|<;'xaޟT#Afܶk2(w[툇`u VNlpoBq@ ˬI$&`R4A C++Cڸz78?^XlM 5˫n|L&ѱ%\La *0uzC u~`'plWpw.]Nd P"M[WgS?Q񪪢û^3*̓B,Q@R`t0ցى_?d"ADBa;?1^"|hXHRf&Љ'1ϭyl~qyp0umPaP O/GQcCyyTY qCɆ3lVbUdU6 hm+IǸխ ve/L Nr goGq[.UΣ@q @S~TC`vޙDz:$V%mNrٷ0{ BhuDzvՊ@2'D0oL15RrkC,{ b@v:uaoUu<_ Ǘ' s˟>Փ6:~Y_T ެ(0BKU0ss͍ $Wڞ]ʷ|vx `veYaZz# U02@I^+`R(%lI&2іgAb:A -kaOJE&FѽLP܌e'k=%v8 v+anr^o{*ȦsP2 `$jsqJ;SvjcI!#:\ P@9,'1b[3w \U jKUUUUEhtǨ;ohilGdDlÂ={OǙs%US;g^xq:ot !8u̱ݸeq.Ӹ>N1o:,X05LyDιU94MwaFDu˃<# +$]4rb Lg=[A|u*"kE$Q/`txS}0t1rݪ| CY/>;tCt76CXd2SSYqp z澶w_xfQ@z8 ^u.sDF_,$wiUAa"]u ] v⇏BN'kzxp^~%3!  G3q=N.sDo҇I ut  4|d\B fB")Yq ɴA=1'8lK{ƺڦQLu{[I?aÁ !G[b!9 1[4%Mc״ClPY?IʿUDar? Pld @${8CxXV0$1JV]٢oXtսZȲh(8\CS#ՃO4%Bef4hX]S2aWK4nx$$ah=UO"#fŀ("(_*qb[bvZA-L?>JC& F h#Ȏӑd0#) {7~H!~R~~D$٪Da't!:'|=c۰,r"׿1 Ű$U88~7snzJ9y'd$*;u#Ҋ@-$ya Y[[Io쳅셖jcdaQ WjTAF^gf\Dxr1J.h=IQM1"oә,)bnPH ajH_X5I.V֏='2)d=! Ui09 nʦJ(y[tBo0ŁjNH׻@,]2 |GdͺBHPU3C'eh^@S-gg)4zL{0#$$z 8#4DFmf3֗3Z9LyZ8$̶:mm%Lw ky"Nȴy uro:6aU@02+c&l9'g{E*mw\G(g0)U=ڣxmyW}טּJڙxOXk^jKvR*qbK<Q.G%ϗ㳇+*]^y~odDn:¬xTVM"XH;-yn6IK[:θM%يg 7[(a ^r E#b9Hb)ڳMdUͨɅ# %kHegVm}`zd"$ Mo10^I=2eǎ6}dflkHKZ|/s1&N"mTQ05ݣ-=]@2؃6XyZa >C6B@Zc"Ⱦӧ(=+q)7"wVѕhFE+,ьϯlx$wdKżTu %y?\ֱ-/*n8tO Uz/>nއ8J_ 6w\C=>`2|hU .U|Bㄭa|N =f]0熝pkAup^zvr-)Pl6Q۹F{74)198 +FP废{Zˀfn/`=Wd13"A!3jX8;?tF@iW[JD ̍ NEhj Hg"쬔 r^Վ^(קQ c`HC f76v7Q#"*mI#run UdR0w產yD'Xb'}289}Wn-N5b^׵`[ =VLh'0<\a f *mSX$N~\:f]05'j `TB Mb* s/Ww 6GjŢbKVpLfi")kG0:dkـ!(`fޏ6aO'UqW7SN,`{!cf<8&zg;cqI1S7ݵ$a1I[xő 1# "bb11 EDLLC'&%bb&&'4XX#;  ` dkege@jN 0h;2èe9Eh6 nd6$1.Ү*" E 5J;>c%MPr >uzQ}5 3P**kQ֚LfndQKd[Y0cNΉAPzBi58FfUPL/S&^OkC77yx14'v}gx3]H"Yh!Dh @負ccߗa`N3Yy9Xsa$ŘbH H봾 B2bb8`*s+e$YIs f,OG$D,a60`Fq+ ^LrI&)4&W /YZ hb;pH0ճZ1XZœph;ִc\Pw&Æ4賜'+B„Āi`f2S 4 'J*:B?M+/vBvc<$2=Gsj'@$;o(PĎw\gfPB (<hл 3f&s4!K&LD=R9OSoF؄Mh'nD6rÓjbڤ%t,NBeBda9H]$bXzɎyv:aN|7DaH*PЛĔǗ%XN`x3YU\h>5ֆ{bf(#$w`49Y c$r&vj*tNzS۲mpOKd$ck*nqu߳@&N f,-bVq$pٮscP[d@2  & BXfI Ac7ǺD9,8Ka>>훭;::B;i8f5i(zCDǻx.I-r>HC94\Ӧ$Nr[zCڗGP'yߑ3h7rgL3tX-i K袓$H;?杀ApaDKvtН3a3"A+1ZNqG6 yUsTj`5CK՛(g9ݙFnN%O7ӡvqb;Oh1CT`l= x6c4 jKH 1)#Ղ %MRp!7:On##2yXIrЧO04Ф}Xؗg(Yj(s[Jp@]A',@dBÆ{ oAz4O˷|~ ,ꣷP[tKO]`LK=;_rܟ`~2wXzcPX(QBPk%B4`yKPR5g͋R<@5fĄI%J|i\󟴥'I5h+jrX={}$_<O}rr¼k]b7%Dy1G 6bh;Ͳt_8Xp>QI( W 8:rD܆c)9gLhM‘3{HcK!Ô)&s`Bkco*,6 CHY{zHt?XNh<.@8<#wHq pOg oUO ))/^!i*Q:9ìxsH&qM-A 1 I2^8yRːk&G4: G=AKd62h6oj8k.LVoj éJFԚш,4>1thXI7f C9``itp՜7s@F(J&!%#@VH@L6HK/rTo7$9 (wRQ#tGqtzz2%3IN&Bbe_l:&vM%BɕHigqR'P6spDzI ~#E0:z7 BB?]$=4tb9uӥQ!ܠ ʝDO~KpU;<9EQ# *JP!)fLcaZ 3Ģ Jff(` )&a %!5$.$b"'J➅³4(mU!Ù&y4'^SbIl@PTҴPk`|.%i. &~{<^s) O/(O\ -ݦԖ`-}.56 80ɘ  7Ӆ: "nƻ}J}<~{ 1i,h2.bMԠ-{^2^&8FVS\{cn1QQ%%!5aUgCaįOOE/4@Ppڵ/W, &0,i DG@O{x>?, R/|)cnȾXPhLiJRAa ʉ/*/YlZ7XѶQ!uxEa ! vf[X TqJH(X I!mB"MU<~,N$#X1cvP i~&?!ot&ڲS4`x5Iz/Įr ԪK&a4 @c4vo;[ GAR$h%QcY;ЎATj8l>G345 -CA>G{0d1l׃)+į2M) 0JR|nyM*)w6}vq{0@N_FB=<H2ɠ !~$sБfqOţjh->=G@Ma`{zVC hĶ[c\>OЬ#8YwԌ'crN *af#1UּC͘E;yDvE7=[Wo6!c) sa\!0"2DJ]xp.h́j ۣؼ!! sLYr'#}DY۵ Vq z)ʵyr$&KT|:sKlO0:PdפSka;O grE KA4C팉'O@CEM!dʅ ר.,V% 6yWMNvWl9X&&e|ɽOତ׺RDs֡2WFfv H=$R?S겁ZIx#PklcKL\E$TPizHzA0$!ԃ^DD:bY7EXQ m >=*!Mc14a >ǹ0zBAAQ-UZ)1̨ J% ,2PL5! $1 L`M{նx 4L$UI R#rA/l7[66p j !)B "DLwlaǼH v> *I$I$}/n~^a3AU.Dtȓ A7/iJUX'yQ7˻^z|CƄ7UU 9xA`$ߜ{i$RR&`x/cpj{T3Chq. w $%_ Pb=q釴WŀT>5(?G?(?ɇ_mOc_~OO4 UOgl}_{o?=:y֩/g{'׿2?wG׫ӷoX?_~_ƿ/?[Su__{]__msw;~j߷=n/l/[|_??Y4}Oz{7LGݚ_??aBloOF `n?Z"/4HO*W|~p%A: ()(J)((h(*-@l0NKV#_ ?7G͟Mk;[vHޟwcG1! TF@5 %iDwP @I%aI@ cրFZK L ") J LF LxBADm m-:SKTaf젛vo4:3V(c ݭQ&C*fn̍$=W|oyTAC k Ӆ-iaY*  ΆLL1 T1/L,C!^%ٍU0ei‣+r27KUԧ^k*Z/W14nz >ҸE$ k3eh`Ps3QȕDfspa(ujpv2I?ug} B,6Us&=[rHviX(J wd*D ”2FAmqѲwW+ 99*P=Nk^׎W+܆3ւ6bىTG=᠘""""""" bz9N*Mv}fc3ČƢ"Ꚛk◙w ߨLCTXrZ'Ũjƽ%w6I ޡ8^S톐!Awk &HUW7}|(ªنNYrL0F5.m hǏJX.4A*qhyD=jh`JmWMUri0\щK i*Lm{wY! X W:q)9bMZ`7rb` GFb/Fo@T,x=:c(M9i7^^B ~0~CUTxoRI 7HsV&!5xAҀ21OK:8Crb׬1Yw !kq7ZF̧TlK*9!!rE D&/dZs!ȍZ &sT$()KZT~EU/ZR 0S}A#)lc #HԽZFQhz4_ч8ZugH./8PlS 'B-u:^c](r lS6ȓ&ӦEۮзF!6oqkRK8'мZ !d+DC5tL)P$Fj ߳s7< Cn0A ѠwM݁!"b3*s\, ]S42j6Ѡ+Ld+v Al$wvӹG0u 74xn`TA H,a.P`a8"H-:4Z(13bfm--zgjDB4u٬%9 E7fաqQE㱀WZoK &B N}Jq'v=L{vĵ3-]2NԨX/%fQ ip l(/5׃8dPן.:77;u4IwC<]hѪ\G@ρm6 1vCLeSi愕p njj0ZAE$l.x9DtM MB 6(!t,p{eGA1ɍ^ dB5*дU6.wdʢ٨.Q,!aϞd&4l umFoxB0ZP6/zr5Q+MT!Ԃ!68lp|Y(BӍ:j&X*;n9 F=6j O!'Uu SJ1- *~ԆRܣ` *YVQ$*lL3 *D!p1d ) }v!! G$}iy/FooS3ҹj ўpY~0 R@$B`J+$RA'K,bR>Ƅ Ж.cϹ<]HR#PX i격hm]'`c, hk tB` Ri H$È oyщP`r8+†a52 # s#ٴkOYHTV/;d 3m ='Bc2S Lzv ]5(. '좵|""H;`a":wR}.5`xt΢e1(٥; ].v2 h|~]i50+6=4hoEN`(T]lɲcC_RE]dgN틂D }c!o6n0ٴhm5l1y+wB(b M1K3S0B5brv)Xz1&},=9P?m(Rl CCC OuxN蛘#B$ ”%1-TL*0E2PQKH Ȅ B5 vV) SȡdpPBn.\| Lړ$Xq=Q)n\}3H]ޘqr™&]P0?.>鿈^"^lmkK dPyh' ijPJ -iayԤH$wcIN>ui2Vd<KBVW no"0_YXOQ*va )%PbM\`@+Mrbt,QXgZ~4cө2#:D b<6Ƴ)!1OS$jęE3'Tv𠎠P0r74YN w3&&7%)AK W>0o(gY6ós7)yoN'ӶqYljc  AI6<5AtclɈf f+2N#.pr8K3z﷍Y P,9 1y`YV3Rݣ Jz#*kmrjԧj80L8b|-S !HxVqtlW&Y%8~ 7\!N[gNi2 +~"BDA2yi6aʏLH*1n]I.Zj7KK(ƻԯ-8:⫝̸B-/4i8}h}$pǞ]i$N$:w1q<^ Kzv5W/tjdI7O7.O&gK#qQw ?P˴# X .MH f;htH7]sΗ+PH2yGoyuf8g%=pI6K1v;,!8G|-89l,yMd3c=4VJH05SJ12C&0I'h427|3Nq-~)0)qXfzä0Xc\0W}'9FQáK l@>0teO|Y V&m集cv㜶7j&"\Er ,`iL @Z ]#Mղɯ Z,\JD*XUѶ `v&[v`5DlIuzmsZVB׮kK:̻Wg~{oLoώ8燃d#TcB&ŦLbƄ 1d4܉uplOx!(f`'TCxiIT" ]2S@>|!]`! Dp)H,j㫃 0 9t4v)1Vc6bj5t\=rv7#hcQOKKxt+DX9efbP j/J˼]'wjla͚&HĎp홙|<  4Hn%h10 *Xp4b1917Ng>xjaLt v'!}1CIdS.DԂue%b`09Esg'MRk[Lh ~H3I%z%K'aarrDd >y'!mPAD=yLb $J@qHذ-zSh;^=>4@E\d  HR9^ģRQ,- zZ KcL h"s[Cn&I ƒ?YPD0fw~!T^LG=4C6 wȈ݂8r!0 웖"f"uiH73̅\]ur[%w`dq1Wy61rR$ dk$I= !>gs&ǵkk+($?B^Nr~'c!gE+z2b:c>o=mCG3biY_2ТC,Hpg@9DKJWᘢOװڇPwV0#y@bsMOs x ']b J`uZӲ6g ?'9wA۬gn[4+ ) H$4* &Ƨ2cu A2hy F{BcaVHWg (B)JPC5WFA XQx+d! v C<Ӿ5A@ q?AqaXYXh31X0x?70 $@e_)҇*Y`D'B\!UΚ0t2PD >"C?5>8W: ^/4bTBH$Qp`Ҁ!eB(O4;=rȉVul*}_):J;A ®p HLTBXJ$Sf=QAF<29ʸ{kD3^Ed/EFh.KXt48cT& UͽAUI 1Ph!?)sQ 厔LEHz/]5$QI_0WaUK5* )er@_ޔ D(upPRw=) Jp!q߭91KFg444*#I -Ď <9_M838NJ}'zӆ*h"jCL”HJ"4$B6ª#8Fڬf۳{{TB8{'?Q4Pz>I,b}\S ;{'<#] g@LC&̒JJ0L}C 81ZM(bڬ"@^-*44 4DB!2UKC}'}]K,M+Aҵ` Dy @zk`:_@8.!9]=}kssO ː$Fbi9N'X}TVƓšF >2 ʪu,Z%y{(Q$HL3>Ye0C.@ ǼZ%A&F7Ͻ× 1*LۜB% )LIdhJ0w}^O#aE-YAM=FDRH!揳YHtbjɮݻvYzm ,6@&Lj5hX8Pz:6AS_(1G;!!hv!{v0ϴ/hoDUu(?.=*< qo6ϫv{0g;jaAϵwTNPU'$p-3=5(r+s|2_>pܽQ/85FVXE=SAҦD0DBdIMkaMdGtc " \F<,áh5Lq4T! Zi6\rs&̜gc3 S `#`fzI%!^1F!8! @;4Qm j%b藛_x>jn BHōU$BvߐK' g gD Mv!&۬te Vy(3D#`C1H;Yuya/i[M TP$ z`2@ }*5t A&#;!(D*]BB`K?GI\@i662}r+:w|} L4aʙC#ϫc/!(U!f|yuc3s GFO'C@9([%.: B`쏮A{pD86lL47R_%UQŠ:sҞ헬l$UnRav8&j3%U=`-߇ ͍9L4S  !RDk9 f 9e @1 h45 7[I/ZF utzvB$6;<'ls<"/ؗ%ġa掎 CPk9X`; taQh錒kW>/ d@B)}M3@3`@yLGB$f*0is=D]8ӑ#\P{҂a<*:E/GM$Z던2PaT%@i2ĥB]W9{<MEG$ȐwOjJeA ZdH ,e /xQ9 xJ~ ͇;Ctr2:;`0?{9Nbc]Bv-ha񤇳 s&73|"D# D}wK Ϯfvjwb0l4ʺqBT$?HPC@`a%BDCƃa%>Zz?ѪA#ihpHhvNf Xq*[L,&ZM01fp afM@FA(T\J5/(F:2H(\B4 '#@& #fj> G $I͍QbZX[:}r wry" >5c1Imtw ZBAZF"NSB5`|!,ȃcK @م:ZdR,j4̇4X=)(yl l Nb)"Ci{3Dq8/')5u#U9%W㨅DRr̟~K%{<X08 IXpAx E ǨlȎbccQUJ냓 *`Sxha07d>=5. Bq)"Id6X@% 0Vfbۛ~m!Nlw_94Xjsd#*ό|HJ^`P%W#HaAJ9C 83"#KI'i3:>T  *jy~mÊ ݂@ÎM\l ~!?uWkL K@lHbj9-ϭsF,pOO걥/|bF6rg$CpP wEꚻ4~{B'oL[!XǞMVe iT$7+k}'.QePdIj=<~{^OUpd"P`¾THvb⦴>uh\ ea$ (21DvehPB@'X$5`T&H8DЅ.HykZ3q 0$ %hZ@FD4 PĈQ(a۲$ɑ:fDhu̜uacRA(5B]39 ċH.3灖gȞ;3 Q~ 7FS% ҡ%@8xv=%΋4^hqL!98%4¹N4l\,C[cLӽ٘L`qMMȵ$278\f1994Ek5 8ɐ4PF L%gyݭT? -gUƫ(Dm-@l8ZVWY4W[RpZ@ $ξFfq#Z:2F|"(H\r:ZV ;s^c fBH<ChZEpeS `,R `5Ո v9D$Ü>ppk‹ SIB7 P`a`I >CvPQ$@|uT(ُ<ϟ8q(N7K޻oj/j[0 G%= :TId师ʡւp!<쌌E Z"F)RZR"%bLhbA3 bKx v!FÝ0u; rDQ[BL#ECM1QBz*h5~l,2 btT>4vEX/\P8\ Q6V1bhɴ %h|θbPsTQ;4׶@54T$DP ϛB8$T'q%T@Q%2AC$DE?R|ibrJ`GC"a$ y܉T( G}nf@5^\ &]@{0sJ`5ޝ6C $"WD:3sވ{(GA00, ;[ c=e(dPH->& Hm1$R7 Y_\bk#\r90tZ潍tӔA-WB6Eh%77NNX@9y@VE@n`ݡcԍK9oI$jf!٣A;QR;N+b~%r/.e<ѡuN3bVU 6&1oN|Hy r[טLRM\ ^unjb]y܀*i]D[{@xɣU!iD0q+t1Eцh sЌ I)AQ B.P 9p7!ߧsrtK߄fE^]+DruB~ηM3( m@juBe(FibML1eo#&zdoropmI0v*M%Q֊~Qb>bK; *)FZx@g|4h>Sm{NN{pjzgШDX=!.v^a8֣c o (J ˈBKHnE8ȫ22L Ra#DÈ *e7ØA`@T*P6`1 `` y|^ӱ)Ѓ g: :>W8gf !$IE"t`kQ12_3@ {]O-kf;%tT8Eӫe?TDA &o[Q2B" g|paʒDW|G ӹL7ib0wOUjZ#Ī*f5KVj/ G3wF6h28L*e[IPB.!g-\pp]xL-9#X0]dຳ/ CSwZȡbr8Uq@Gy/u48wh>ŝmCȁ:T ABAnR 8| S۟,j8Q$ :=GC`t1M@!K 2BPHΠq(<@΂jD6DQ8[ooHHB-0ĒWT@H$94h2 ֢0 -qFSQBH%8a.qmF`?ROP!|3-.?}p; #B ^%N=SXC(I >{Q@P(5EL-2NO*d"&6wN,jx2$gLg֐܆jɒ=b"fE]Od^f{G¸z,ecp+rb)ܸCO~Pf{FUJA}'Et?=2 ?9^mSْps5+0 I4|4!WI$bxm&;G^2}E: 3[ A+^MOPz}y&6U Ĕ\$CIDu!3f !!,B D Ρ$V|ΤHcr;0(O;^YP߃Y x[<_wC'$I0|{UR!SэP=|,u=}\&'(ݧǦxf<# # 5@4!@ba$D$&;ͣ T8 RA h (CLV %4 &ZXY4"6)PAfI^!4k L eJ2LC\5b`{&$r LĦLQAkqkeK#bT Ģ.J$$$dZrňD 'LMe-UTOXeF kBRزi$`,a>H7R @U`%P9a@(PR)Ea% RRAJе @(iJh5jiJ!"M nW! dB :B8%ePS}=EM'E_Ff@~z2ODH|{9UQITSBĬU#JU- CMh r"(I$2 e5T ˌI 9 ESPLL1"),x)Z(.yI"PC X9q &]~/jt2uF=dPOk9rƄ;l]X\ʪeG;&йmǠ"@AM!I")B{q3A!~xPn]01: 2ڃ$,NG`UHL!rs\ I| b`Y`d($*Y%)"BfubV@H_C/{!P.( p\+8b@6Hxv9(RΣ cB@ZPš)߱ jwi M̉(2l7s'`@?JBh}Á!}Wfx-"]Jb) s*=)ϧ+ j QW**K C;X(I*|9h<̈́Ⱥ2S"If0DNXDUm 6 Vlir`%m, (V$\q8lB*zȸ `YR HֆJJ\6w$ͺ "sYe,l>0'>p_[0'Fˁ:ښUmILF+넱(o@>zssBr<{ 8=~Eœ] P5=Ts hԘ5PZu0f,y ",z{r :zFdTOZ SFJ&!< DpO`dV 8h0X;z%WAuYyoYKP&:8̪dm}drG@O4'PSx^sӖHfg%]=QV!/9r3N2ȑF̴$u|Oo~A9fWIor SDȾj@T(Thm`4~0Ɛ"R C??t_O! X1'/լzd]yBL^ FÄ}?oG?,DxXG-DHTlҶj4$M5ֵvaqƷK.:s"CTfMHa _7S?\ ' m m]-% #IHe6d+P2G𩤁ࠂ0b\@BXCqΤLŃdiduѸ.AZI t!0"E#?1]Bj,7 nuqHQ (I~/ܪ~(Lx]>Ad(@>a~%L]TI:2t=)$&<4LP+O8?륄܏""@(2Si׬䢑fKK3HJ1E6xтi{R*@)Wq$\0 O@H*!! lX6e%S,LBD,AbG*y:KrK FJg硥[?ylKf"O_mّ7_+4wj6G O{]ڙ2f6'K1&20ś71՚0XXє{ڡM%4"!` $ V$ eC`%MlJEW )P$p !zʓS؜@WEVe)>Wq9k B A`l0S/5Da+dMfa=~}fGC%3O-~ȖtM""P WILy{Z. (ɧ,d&È 7ɂc27whe }fR>>IÙ"Q/(Շ0=) SϦ; v/<'cWG۠=`$0lir^vj>7?A`DmprĸaħTN66"28/a;in=fM*  $(c.HB27`8Ƣ_8uQ9[9`^ {Ks~#rb ͂3a,C7;R[ ~,,9ZM{'r ݡ%"1} !5Z;>ɂ 1}8z|s~4.ú!l5m/@j@`?Cd 9l 0P5 wCc QdZ.}7? *F+f$TZ%YlѠcqsY(6#KhL99M©/ݛBس^LbfŽn9Ma.xc>裏g($jBpSi9B=eýF> M{ ɒ)9UN۽@VDC 5#k8^j0`'J!bQJ!8y>_llWe&@ Gf n 0U*!$>6b *If-JGy iS5DLY94HAҢHT QNPE|Ke5p _FD8ض^t]VJBۍ5:',CB>b*0`*O mBH6d!YTtQ2WQ==X f$F4+Ff5d "=)R & Nj.F@x>(GBaX P#r===0 ^6ih>.9!20yQaENlϫ ҶS(\p-YYi3\³Jza=hFYJ\~#N,{݀~_8tlh˕Hk)(* W"j pK!qƤ`b.35zoQ3)kBI@bW|O"@~PIGR?:!I}%dAϠe( % @avz{(t ,~-|ggq  &> XpܴW#fq .&&t]Kqg<L28W1 ih4i5#MUCCD %4(*hca{"Q DT=%1@ GN`N3ߺZrRJ(-cq%o.dқt?%Uf2K2-jT26@՜ԣLb$8 =c3xqbdH ǎ<+(FLx$4:jT Fer[VD/7uʸ+p ZQ\7rFD|$JdP2%}$kATF  %c2Y#قÄn%N" huim MLAkiL8מkα!53 vC 2غ:iN!Q/9L( ՚"HT%\0hON`o[zAL&R^pj7!608p+U2֑mFF WʎHę(^ttj坬M#o[7~t{q8N#[ G+3D&Z/XsOQȄ0`\r@lF ``0h(0+GERCWgR#T%0!-;2B[!@ A"Dq,h,L h5S}n/^g $:4Bi4FԺ0uj@S2&Vp0{ܸF7yfo.XdDzyi:hOlXf, PM|j#{6Ú#@&@HI$ZJЅMlzŪSA0!|"E6.$~;2X,@$r;2 3`Fdwlq'vuA\BLh!J4ѱ$8s|*wia2)kT ai& }sWKf&Zb6JpFUNLIELn0Æ X-W#%Ըh1u1ȡȥr 0tk75 NXC^у2&Bo1XToDn",i #?Pdc \LY%CP1$&PgESAPaQ 1,FҨpF7ش@N 덠otVj>i^&C5;I(R:r#DkJc PKA  R!%Db6d%&J2,*DD000RHHQRIQD2KRR,K1-A+P!ĵ1  DDRT$ JL01!I)I1 P!@ $C\S 31\cPBWtZxBBA]m5/lb$m}72LjpLsC2 DkxHN]Fg48MHJ Bkvd'fAt0<@mL@ˆBJ!O9ٰ0Pthɛ悒8;]q'b\~M/7%l\(,>l lrLhaCGVa>.Ɵpf#XT LzП!0W֏#O{ڝD(R.:yCGxyT867$T -z#G`z6y '= &z!lG"  _?f_Q #Ӽq+S2ل v\^]WC1: 4&GV`~8^ty|JOQRTsLjzftR6104hD9V"û,G00i6͚IVdKA<yh".cd !fHs}kZ"" !Pu5C< пu1NGlLz씼>UDЙ#89pD!ӌY@⭸$$9)h,fb9Mn^-] %4*}먕jRih NAx"]h]m0_o~occC$DbL5xET:WcL_V΂dLy[ '44_Z =.ddZE|BSCpPf($ Q*Bz$8LL!J Z_((j_?8Ĝޠt2K2F13)(bbK\8DAPLL5USUD*JT~54$ BꯎQtc6H}5 '6 ٿ<2\(s0?ֲ V9֜FM0rY2"YjX ,0ȖQKHFRqpP:xӷ$* %A=!]a@;:);-B@TkhҟO&a*oI dRo(v|C-W34XCcӓr"`R蜉G- ! F컊ZޅRc*si#AH" @5 t3-dC$8)*ˠ%(=U> i±2C' &A!ːJOOA?ɑM"tAJ<# p}]v~kooBR$2?h (AW]ē{%=wmA`gf \ >[C(4'dd 9RUshclw ▴ʮPHHc 0lzȐ2Dne x O{L'œ*E3g{xfGN~e% G9^f6B'LAC pH`KBҴ#0Y A0Ĵ|3LAy$7)!ǔwրEMݘt f ,xerkt=nFE2su1 0Sv^l^5INO]A>Q|$ , ObHߣؾHAMn't/|ybR2rw\9./p 1zLcДN5- ߥklfC%XoF$H>0tt h#W f+KOJ{a3`CdzJHܫ}@M<5#=0ABwva+C m W_~7ݓB 2\YkA8 PCq)bN \h4R[[w@&,ǂvCֲTP l(P!;4x8$<9G|s 2`!j##+0r8=/e9 B }ԅ 30!P,>"@0sZÍq vCm훳_B> y04NS!ԟ6n-kIwSL 9n)Pe$Ğ!':ABLar@`LbN P@SO-ΰ9g0T08tnDR9,Ju3UQK;F)zHCpЁgGz/a. PU5E<^3#]X0rLP>^xRGP]*蚟%L&L>7]2_ښO1!.iye| $6E!q4a[jF;gڡ=/#y-߉䡽ldd eb|prM[je*IEf$[\յn;N8}<d]z*O;[9 ݇ ='U`X*12` 0D jπ0梴x# &Dt1r9v'Ap6k3rKF[ j́~ؿ^ѷx*Op -nwU2cZs%q)b(. ieYаF:ڡ}Uv$a6V€km>eAeUF4©&%6%٣cwQd lt 5/}*AJv\b˱/.Tr_z4ճI8iuDbsӔL<ѣZ APo5c3 tMYL(#Я<%{iCفafWg^/w˲b 2BAKV "Jeix2̻FDeƥ b,X7:fhC`bPc \XBHpC cJCh߯ߡɓy4L'X78#Gi܏&! 4=dsV&٫`YF(x&,t0(傰eܘeϷTuq*熈;ZΓ5̐`%r)=cI>X"n y!gc(PU-(42k>A C3;: >,i5pP@C"f6p)m!t_G(UET6#RLefu؈!~-\r.Zwc4TH flDH 5֬k4:?<Ӹhæϳ e)eǜDKz0E("b‰8A5Lc<*tT;E2u#AFa5 2ҕo3`Qyh72VIb))^[N @Y#zy7dz<3@,;zY|8vā1 @__`W*LfX{Ʉ3>y鶷jC̹<,VyI;Kp&@& X- ̂r6iĦ\@"fg9i$HXy6:x_#s=4ܻR35$@BA*yGUU2'-m[Ts !ٯ#:ӦHd$¿)[ xKē>Ŀd.ޏ W4c#7[r> Q^|U ;]!}^P1nn8^ju&\ =_&.d R+wg’B^,[6} 볩X?0 >C"B o?$ib(Ɠ Фu^@a  q}5/|XCvS|Ai=&yw" wc}GTUM,.B !(|5E  j4A~$V!5Q 5DAgޯ>/12VU.N-A4։p&DĆ6i,)F  zx NSr=D|SB=)k+XiCS< bƷ ߲%it ōWLS ^ Ecaf3aL!@c(Lyf4(4 #+B K49n`Q! f~_Trg* hIh%sHwTQ1LcSzʈz'& >AM J<$OX?'6b5DTMLJ0$Q<0SU)/AϔxW~Z.DEìUTD:><}_*] 0/$κ5q1;vlx3I3l[<=QovNu۲JWf?$JXѕozϛRe w}IfMsgv%;Ƽ (l7ů,%DiA_K'bӔ\ЊW·q_k$ʤD;c\c߾i)̟ |\oݻHBF/3aP`NB np)g6ZluQE ;` 1X QhZy$ cހhIsH`nn6 FΟı1 (i3=phm-BU3A4 j HxsN[v$Q YdfMEgmh1 TQ! qȀA$ЇS(Yj92'5U<Z>z 5 0f# " XeTd9XXٙTTa'L%2eAEQ`dDļyXQ"]^7׏ ^>xP z?,. !7 g>_wxCθv=a^hRPQ̍I"2̡(IBSD[g90BAҋt &jcЇjh0© |Cy b 䌐2ioT7NqAL2ni *UFN;X[7\jq!.`Fьt%e񍄈\=3{'+bAC3rc +`WVSn٥ ߆ p#r1P4xql@  P2;\[ NZƙJMȮ1i#l`l<2؄2:ݑѣq<9ݗs+{)knXĘP**CP"2?SseSG*Oa5(* "Д7lH .itѕAf:4$ 5+pI+ 8]PrprM88nAkA €yVZꍏN6 `H $ۆ =NgE$6C B(؂" |Iw5=x8`'خ/S9 r]D)^h4}鰄|r$!(*FKɩ胧R ۸;F"n(R~X/Y]z( cn:0i8b{sԜq8 (B=ܠ|!&@aQg?.k)2H"Z8P@NBOGӺkl i X 0L  !Hz޲ ?GoY/rUEL\%%ǒC" ,$G%5F8|_ EEEe B%Lpzژ=k"X_KTEK%0@wxB$hRS&s!w w1Oҋ*B8{_A䏵D~>aޓN(sL֒g P@@$v`'? Sl>J-Oۀ9۟]'A@iķQN8;HEeZLW6مz<4 euD$E~bTra;  Qr)@PTXAM>BBu; &Xr 8!Ӛ5.vC+ &T1 © ABт_G8&]t| fA!=C~Y:Nm6gMrOr)A 5TQ-9f CEPS9щ4L,8 ` 2H- a"]@CAIth4m-)|԰ x>p4>7aL$΂ކac?I :((!!B=p`C}lN'! $4x@>bv@%!/RK 2 l,Ѭx1PXݐUjXĀ)SI@a)%M2HAM[nD! A y'vcoݭi0؎ULHo+O Η7ԺLw/nGlLR7؏w&%}U8{:Yhw@X_&Pxk=#-x QjB*N,n|NgIKBʳ<2e^"9+o jFX3kJ^(/*GM^N!O0czc\;⡍FמWXB >qhbU:!Ai379@sv[W]$k*C.ß#f͐tso *8X3A$$2d=m?5/k.Y9?^&}kGc]S+D|$0)JGl]Џ[s.vz~Dta.J 0<)IљtK$tWm:ǜs,ajܹ" ôKbg)B|cFCz}<{׌6?+jg\${Rx2J'>\Swsta-_N?=:&1DP3~F\Lؽ^@1yTwh״W>;u_Zώ$%vUpS1_KpϮysFȳ`ˡ;$5${;&/K3ٳFPT R%c=R DҙB(7hKuՍX&)3C[XPp(v;wݲ:%U>1'4Km*ls&"slkQEIii߰YDC)qf  C gzl٣T XC6ݾj{]Xljp,Jn:鶇c8s5r9lg$6Y-4<:&U+~PG懳&H%.dw @&v*t&F ا&]L0Y:0 4Nn4e 9l-7fvoV *ƚyW׃!\Wc`DbjץXqKC}}z#>%)|ױt(Y)IYcBrPDgN{vyGpϑW!8p?c;Zӕv) +:&aJaُij_+7VPCӚ>T*f ;itI!&O( gCFDdl唻CbCBy{UH8`R:&E<3("4b{^N;(A|ˏRDa8HП y_oFYDxٯKܙ"z>)WWSڮ ! @h0Z,Bt̄u'5MBb,uZ8/>?hvzf\1AS| ϒ¤2oUy>UOrS2f܄){hL- o  [U>WE$1wf\1ozēTš8OԼ α)ҫjW]쬝{7!_=xg.Htxz06v9/4흔FE'w<4ν`ONz?NxhfH9Nʚ/6].A }D;L6[㍌r PWM:C5Ub-v6@+!&g;#*9,h'!V"wI ;Gwa#F 0ArUvD21,Av\"Es٘ hPBBh bgĀb ,@`Μod6f|<癈Ηlێ2,%[ |tB - !C͕ @J'RJN'Qۺ͚֗}`*t:,Vǒ#<|ڱ}sҢ/o6|I} ~ uhK5H \D5$hvhqoytM6z uEc/aT&3/)*g:HrYi!hZu``9ld,MY4kOgÔPt$e抝pZR>np3NJN'[_/9 )&!06QdIw:o'mЗrN/;hm+'աiCb4jGP`}Ƭ(Ս>ĩ9-2qdǭ&#S\pE0e,p($'s3"n4zƄDC Ȑ|^ .`a|0G ^d!N>2DxAG#WQ}GYTܬ8!`y-}&`1|YVؽ==`:BJXC@`]xil<wSc}B6_e6C8}PL8d˓925К_רWP la׊K"U߾ wꆷ!y2v ;Wٻ:i&w<DfqAma uib$P'G)ۋABL!cJ@ʝ-Q} a`$0 k݆0m )aA#t>%esL*G7fk{ Ӊ.ho5R "ya렧ehbD"U:]3֪Єdr  QJ( TIZԅPE Ì@n WVQI73*me':`҆@e3üCC bfֵ3"C = &]; E7k5L' F QkqlX4{4B3/.zf$τ>qTQHPyD@d RLIH!XB[RSI֐~A7cR@L*p ,52Pk1 %` Da@7}\I$%$vpE2 H 9׸D`odlaMN]<[nE>OԱѩ^gMT*x!兟^ !$HmJ#6h=~ߑ}XSI7]@@z)Ҥ$t;JSUCHn BTbŎ]ņ{]˪{uw }&sΙ9swʜzԬZ|F|ØAk:?쏬{[3T聪\jLilw[[':lِ\n?rĄ:F}/"UeJ ekMҪf閪x < ?[];pјsO;K} u3OS}~;X{|-: e֔hDmrus1E VVT1"7L_ Utsɪ|Oޯ>:)^W8}Pce9vMi,>:=~ M4W@gzt CFyM6Xv^10sN*yaփgKO_eP81f;o6֖nQ~Ud6}eaz븶:& Y}uՎS?"&TJԤ,]:IJXl15|]m{BSLVA[C'>Mu{cTiGx"kST1[Fo!G4ef >mg˼p݂~G4++kJG6cl>MmY?/>__nrKUwK?Erӎs޾6K7 VEaT]jיWgݭz=xk5kx;̵0c3+? ;T)#gG/;g9n߷^r֊_'!;3TTn(hmC*0vu#qgmcِr(_VߺuҶxہ(X[nC 0nZ@HWL46R0 "+)+ K]9[Ȕ) Yfd.p#nӺ@!rrNs%5F4_ds5HkV\_qyd-z ~ٞ4u/gtڣ&xUw sb]9YeXzAn yW6FZg*fLm]tmo7,mCmO |aKKA%)g|pN9{kSb|jWXPw, slZn>p0QL,DR.6вUS~31=&^c9j3W.xiq3c$խ jM/޷ X|*_FMF{J뷜M#] 齑:U&Ҏ#UKVYKK7ϰ2Qy3YX3抑yTꢈ7(-"*=zR3&Z\X8jȑ2RKZ.3W]Oθb߀rǀ{;ЮˉVijtJ.}kw|}$w AJi+ˉ ̾m4cɃ,הKr ua9z.yqg&ٓ}Eq&!ֲ sʆ̤ǹFU~X?ܖYP&`KUDוsz06GtMzskةg*왶NŋMG063om8JDCrý2!C\夢yjIJ97bʫ?={)ޓ{mm},F;~VWjQoᇂZSLQ# ~2Ct:GXްGoft19=hxw`sj#Jy6;:se^$^|ޫȭ)+)ʔ޸Qg?eF֬Sϛx jROO&ŭjҸU{>؝1wT/uw٧x$:Y{[zKs̓JM LPY5;;Κg¯'M9FHC -hlvc⇦e#*+80e Gn/wՓ{jG?)yeqO^H.WM3߾ѦF2 \Syj1ʃ+ɑHZNzu!,&ޢ5^Qx%+q;z?˵ky,dP޺%/>l*o, osK v.:x֓)IaURi5ʹ8[|Xi+*+Z/hAI=֖2/3{} 'k[G'g79iͨ3~\f}^`*ՃJ3yc.TLqELgA'=o[ky?'g?a_ R-  Fj΅{NxV[s]5- sff-tB^TEVc::cyd:fpx_o\64eʠCuǮqsQSv#,K^3+'Iu; zl:]uxKԞLZgӁ '1zCeC߄7U5Q iXFUO3ZaԣJ]X;QꒋtܚȆS 1'2@c|Kfi`)6d- bn蒜Um \C4 ٶ%mOmkp|;&eT h0:;;kd=q5?g/LQp'b-ۗռWkn?7YYpcPgi#sc!q\\IYu|{,ludÞGy Uvn^[Zr o#7//ƻoKۍH q27h׽Yn,*Er. 5I 5H!pYG囪]+ 9XtSNd QsrxjSxkhp{!Ojw*]ᵀ?f]+Y]SDzf_<+j0 ckVfTE()FEVNi~sZچN+}m}AǹBxV]}+TJ&MS!_b{[rNu)ߢ Rn={|)yAM5O ]14eK׆oMx~qJ5R4zjKS> 2r&ӭ 7ΕV6ksTW1mEdR nڱgVLəY_u=z}cGۏ*HEڎUzyjSC jn\%q7|S!qUR;4>}_뇟VV\& К|--.v) }t_JqOjp6Y)5w~a%#;h]lK|}Uvv"ywQ1SqrRV(p st2AijHn 7$Rq`m~SφMZտz:zӮZ}*6I<]2*Pn缕/-l[<~e1F qm}ك$o5kь;-0mݧ_SB${KR̚ zGk6^568Fl}QJǟgz@΂WLQP:)S}`PݦMUƌW51]SVOFQum)g- VZt*^/2kre/5臧UϯA4}ub* z<ȯ%nh68jZ22rSjSUWcRa%wOX33m^>d*. 6>9ND&MqyĆr͉z;̫=P[v8|^J2Uv5~`P{m<\uff3-)MQ`\rRo]P$ugj'v 59x}s9L;캯n }A1 r7ޱ_FmןmoG\*SԴ 93\h~bݪO1vj(9-+:GZk:똓zR3+r֓j^TNuMϞ:\DHE&/Fyk?X6E.܊R1ʶh-6.z)=UFjUYZrZ3Sʨ-ެԞy6-kd(Nj)8qȿeOJ{L{]q0ATwq#_հL:]/P|Cuc#bڜ4|}ת+_cI-_9\*E_i?uOU(Nd9{aɹܭ'MgI`";m7&z]!w~t )(}NKZQd1r]֐%OoU,UWT*Ӯ[۶;{ 71ȍS>aHjw5<.N.N&- 7pkOrM{ W3nD);hL{/[6%4;6jQr+x&>8oϰ,ѲߤL ݴ,$efB3Gx隿33?Q7y&eϻj#)wx>H jwMwxP֣>Zo3cyFɿ|@)M N7Txw1)~!M:3 8%9GC/1ߌc?48 f諬ѸpNy OeKKш{CdT ꮁ̐un/ ѩX2Ш&C6#íhW]OoŐϹ495T}ډwוOB S.[:-e[@qXYju5+}]99V< ''vaqNc!hTFSOZwW)%˶N~(s؞SvJLh~yHqSW.s t՛djݶ阝/k{zRܱC'l_u)IVǝpOgဿ-,D/_2e$;^zhm9Z#eܥϷ9\^Y3-*FA>39t~'#vT%2o!.5z?Kw,ot3+&'s'maFc7ߔ":;faEkؒHJ;ϻӝ+쿕oǒ?a7`ީ%T*ǒ&(Dy揓y=ݺuӻs6*0TtcrUmJ\ [;4g{|=gIZmjE}1'T^篬X~]W ˿[r_0nÅ-7LJv >;Vn C ОjNp (ד}{?]7}=Ymgy+2s~ew@烀_n7Ҥ|E57\JV_ǽpϡkvty-F+ |#۽u+7Zyw 1iRpJUzi`v3yHʋHwVDNYw ?^̍Gߘ^0ɜ?}\efϭ,[l'%.d/~!vHAd4oP9,CE+{adI/mf{B<Δ5!NY긅SFZIkkhˍ/~GV> iPpm<֠(ywE1:YV(ds4\Y×DO wbN.1>:s]'k)Km!:s߇ͳBO}p}:?CS n7Dwo\ƑپKtgK{3GZ<1eF/oIU맸aGHyl;O^<|ScMj5_se6nOcY5YJG쯸K U4l[enj4Ιh@YN((_T[mŅ^ZIR8^/mܐyǺeTlZubvscY8>9I~{J[kkA_t+ _1 '(ukF&lWBi@5yus1UWmYIN]fߚAfS= Պ}N]/D-L99M!#"ֳ#FOt.=bST>ƸĖ;!הe>l9p*yUEД3|JR:Hz==Gv忍jN^jT=GRfW3dY^gcOGvnwj*Bd #G(H5!OwnMsVEY_F2NF|rUl浐N5t^i>AdI- 9c}̍sOo}~~sǗ>ֱ"NV0ڼ+رIW+79i{tJȾY{[bb7JNdyp-K1Nm#-CY OOeZR(dn]4Zq;@+q%KU :}̔~>ٳҔ#73E HFzk vvpy+u}Lʁr#׳7w81&ln6{F_^{~ECH^[YQ9kыԝ>pI%#ymH_4e):4emN/( +vI_N|u7%!j@؋ϕlWv"Hko~v^ܤk iR$lN:5z7qv04&3ߍfgsMw˚u&6*]y&J@afGX_Z?KkGMI؋nqsԵmu ;DR~zI?i.F7m)v^KeH>t#5o "GlF]&P*fZjsUµ&>[hϰzl_m+cɹ>CUB2^~)rc`ݗM\xyMnճ}O{\nlIN1Y*VQ,"^G.79#=[u%tFuM-[}b,)[CzRx۰^ =9;ÐGym q4b&Y4y9k<-eFM&{rdi} q>juU7\/;{i8Rmi~0i[Նwy'ھT:[G t.;N:y e߸JAfywڬ*4.~JsOkS&mDo-?^8G+n϶#M3qlf9˪R6j==R c7P:cxQg6phSԙ6~&a'5L}+y{C9ypuUS_O6*)/5RJ[쟆7_8bgzhgԪs)Gm]nc"m謭5R}&Wq Hi2Z^F%ZdlҶlG5ke9 /S<>:RyD5e_9~i㷾ekw>G=h5jXyG,LIIQu q?J+6T_;M /šꖤZKaf~};2uA5Ox*_TrS \^_5#@d۽v2gM v:=^gɽqrlkfܩ >h̍8~ޗTĺI9o}w?S:od5e+F#|Xg쇓//9zG.fohz)7YHaw?W~U=92Ʉ.Дz~ko owGVsDŽOV/>(́_S_fu Agߔ7׽p+r?8}sG2 !c_qgS7k߇^^Q7.W9kѮr6O ߏ5@+6gEܔ"}]A`ig,fu̼JM ^R[yikQ;%Dh0苖gQPGGFV$K0a\䂄xĠX.X|"L62,\* Uq\$,/@/vXHd&EƉp(-9ILqrW2H᳨9 +C@båi7c6B}}M, N1^0ɀ`KFLM:7/J=`ࢁģ\/BE;~ŶJbZB|lǀ qG`HK\0K6/,ELwD1t.Pa!w$.ǹRtW~|L6w?JeLݦ .4@3hqd[4>"TlT|f4jta. bJw2\L&@cqT%hu SNW\JD&CƋb 7qlbKc_4rxp &SQ\%dpv0E ߳\G;_*ǿ̏ω?ΟȸtksAJǥG Q!Yhhm;)aC)*"3Q # ?Kc9gsH [2%4$t;xxb8`0W@ 4Ⴭd"&|fnamQcQdh22+4t|h1z, LmAD0F C!b@O&9xJq85fF ?y"ǔc[AY73~;+s宫10؛o'l;!>XG )\0TgUXD"X13!~.UMIe:(xnE(/|= ~ghK&;Y}1?4xG\~c:e8W4~qq:ŝ E͑ `֒-2q & s!'9Aܭ%Y)#Lfq!@h /Mgp< 7F7CL ܃,vd'dԛ%IȨMFqxq∷6@l8:A06.[C8K3pfEx&l) ; $D;q,1w0)`8Aq0q9(NTm!HNdLI`f0!% |_:` VKGoB c1өĂ89 RٓzC*3㱖B634.l`/8.plK cph(X%W+! N!EǼg (qL>"5`,#ےzg&! 8+ |#|Ơ,.k3D"0+EMFMZ΂ ,$WI-YY&q.N+ҡ ɏ{q")c p8 (ZSo 6Ǵ;C3,O;#ֽ709Ġ< .$ xb l " Q PDцK8X@_A;@(CFBc!dGtKXBL 1V xt&;8u.{ji@TB)*PMmنd& s8)$DfB[ i0k(T/v".t# CBܝjDìI!#q- OKKFW*(7d&6'oCnu MʧőIT`"uc@vHZ:ړͺ8qXP` x1.tC |0TZRps Rb}ћT`Jnpt;e2|k| -H V`Ai!dI>u$t0= B|O-+/Urİ%Fl&D쎘 ogGCD6aJ^yy\*dљ 5Ig%N Uը ^ RY $>~q(؃8G.AY&/ 0]*O`+?PkZPK@tIdG<P-b"^kCF' e`@,[';[\۩dm3,?li'Â<@s:r*nl:MBPc9boY%wh0$ykI5teoNF( EX,Xxe`9 h2zNSL=7ۄ:k^;O쑺u'TE\ Bڸ׏"c"qҕ{ |h X`!s#`VUk}?a\'#%ijm<!ݗ\Cʝ| ѹhB'4@ P(Lg`!8c A/ jca‹nQ꩷W!r%EbcLO0F#\0f_r,7+{oǃ0< CU0&{7{8,:o\֟Ƴ$CǦ~2<52*t@ _Ec\٘ccgc@J"j [C=$e<@L'C@7 Y[NWs1> XC\Ȅ5ZS!q Gy tp~adN\Ub fqta_.ƊS&@?`ހ._{WПbJt sSJN`%j@;4 !.9GG[H(`bF (T CH!L bRD lYjB  s($uG̕\L Zh^Vn`3֋혦B~܉pGY[8ɡv'| ;/z|@k 'AG0vB.IݽRF p9E pJ=usWx K(xakDXi@&!XL0[N('SFsj 3B\4b _F!" XҹXh=N0MD pX".pN14X]DY"͆G< l;xN=X&DTXilBXZ IlDo[ukHdg%wAT6D&vPE3!#t*;*S<\:&3QlfDA@7sw`= -;<U:eVC~zuK`d|wFzx4=>_W1OޔHcpbQL(01UDJk`ԍ$ŷ/љ<9Xq~'bU ,'VKIhlf PR7 vuFTyO :*|ޖ,nh%%n,!"0Ì a!Oo"[`(L*6j 3a2Fʆlc"vpzY a^!n^N*i̩!`hStb;vE7Hh1veҘ'بQL\x cSL,H߻DʃiLϢi-_|"ߑb$'ÔX{[Τ,P:`fg}/f pn򚉸qnRHYm? S:,~{͈ZcHU &|<m]+3yX\{‚v!",ZNv9;RJ $9;H3Š$;^_5PDԶG|B{9Hł -`OSR1a bX{,]u'L9&r0o<; 힂"{x܁e% m /pcq  T5Qla\quA2P8Q3(4XD(i࢛Ipz@ӈg"ML(*im~$Df8[cs"Fp?Tz1~Rv|4-YX's..?JajC ~Q\`vX!UgAAA%}i)ĚvY~u GtnFaN516ŸT~o*0 59ɒd [OI^$ʍݚ0m+NntRa(KDX1 2g;']/_х\ }(0Z&> hTHHDk "􅉇 )*Fv%: ux.=΀$:En‰: Qpb!L1K߽! A~ +&M@RX6'0ؒ! 1xUVVEItQzo:,OJȜ#?dCqWDX#X$x`fol<33&W?~,琸%Mq8%a{#:=U"+Z4=tkš`-l=hy8;U(QINgխsW/\W#v6l`C0۫$jG5xs /a->,u,-4~Le`0nP^n.?G㔠=QQ`V*pq^ =&pgM"x|fb@<#bX"d ݈-N|~L(L8y( rۯwpVD8ariR^N a 9!Z&^Ċ$YthnM!z-۝7WQi/xV"tYy!|gA7vAolQp*[30@ &2*V 6F3ĉ$s:өO).]a!.&h>EbXKR bYDr.14QD9_,l]Kc*x+'- Xf!'|Qnotǔ%\-60ɖd 8B "8a=`4ߕf".at8?()x$_1yZMb#*{0](bPm5'7q5,eu QYXWWu?P~O~7W *M$pLz; (5Y?!jdAXx&G#>3`5.pGu77` LbEJFwc Xv .~y6 O9{Fg tޓ5kԍZ&9Ǝ kSNAAkpOq33aRzByD|c^ n_go{H{bƹ P´[.HR4}k1⇜ CB_BϨ0afJa/QMSR(@+ 7D|>yKgBOϷpF Z,E>#ŔlΛ4UA2_0G DREoD渞4εcȞԛ$5 __c߼:,J4̭V `0Nh-[aOpX2}8Y̮mLseI0WUrЉlpyÕ YiɻQ|DQB)kdHj}6j [ԿY;jBv[y4쭠jMhulKѲУu⛋F߳nOB^װx0N mg桮׶;7zUKYraEe㹜sAE/m-:-G97~}0$M17يWp[ؒ-F3ܒ˂ae)za\ggyW9",fDf<=leVkgYT{=qʱaC[iڵf!J iT5j_m`΁bBgXk z?  ƿ:Omĝ3у{ zd yu!R XǠR92{U! "iVѢٝnuN9+!3"kl8 eS348(g[Yؐfl?;{KV{)Y,RܒZN:_qhh_cB*fkbsi84*"S7I9C-Lma1D'$Rm0y1qZ?fIW/,hERoFvnkhsl/,9bW2t:٨R3[ ͒Yh*6T4i ۋ`eOB\hLjy,MYEryo" A;o\kYռ1 `/sF]`' QwJI fkt`TN;E >sXڨv}~ Zrj-H{d*Cph?K9p^Ҹm4K| MtGeƒy5;`gS %21lrvn?x+grf xݤ7KxDৠFdfG3|ytzZ4#mt``aP$zz Y1yenWi?,bH_; RA=oAwf!)lXo`׀ R RWjќeP #Z n5W5`ѳ6?x#ya$> SV$VB?OR#_:&NwFm_B 3b5"3&0mMA?8@` ;XqZ'.#NtA " Ň&B U핾Ңշ4ldJP>x{Ac-j.0 #SQQ!baZRRJ5 Smcrh{߽fr>[}م"=]qjvQ7Σep)_aZ~vVja,$q.\ lM8MF3طow]!*5 1IU0GӃ s?IqOP-hzq'x@@v44zL"MEVp0f@9./k2zlo#e#CBUKYhq'rw#o{ho Acڀm2xBD()Hw^gqxt#v.KT+"<ܵ0$řs5^l{,]OLl؋ѼiB]+Fnl7MH hQ7wuƎqozs8SrfP󞤏<^dKH=S ._w-~7jtrۛVI:h)1drsPSj)H[rwJo0V/z SU7:eInݚ.\Ba~xHt`zAV%c{(<˶*s5ze dob%Y'q.,71Ν0j+=]ʏTwI2M&Ȭi$-]D^=q4m^,x=ѢZk `s.+/+z٘X>8ӕ, G2,d2jtlWT7as[PوjjX'/恡z`k-O*1PKT"(ȁ%ȁEʟy1-in@F`Q?lboK-X[k;ilLzwpW7!_n 0aᗬuP6 y'եK#^7!E@ wK@w]$콸`XO?ZWhZkav. }{19l`ix!Q'9+6n/86 { W( `PC+;{{[%;S@Z "eunك7o?9TOz-,Y7c-6dvfG^W7hhA@35c!1n],Mɱ}} '#~?Abw*4H v˞?zA&MSa-şD "Εb~i{Cԃ%+g(뤍÷{ R"׍#GYZwfoZ εطꦗjqͮߖ] W.|.@GcN^ %X6n]5C_ߕQAj$wRޣ0vooKJe0`-jw3ɔBIǁl1o$'/`r|Qj# QmwZikg|5f5@3"%l2.$q VswggnJS⠟n"iM*X^Ēhد"jq!mHL9c2kplo)NdKhb~B3ci8ãm-h;/i>m74 l ܉5 B!@%>" vw"ߞܜ]]mGGo'}0$VHm(l'}N꟞MI{stt^YR6q221˱xhz6y!035w.g^O$v,cs8$RPn2HGcNd@y?-Mv Ze7@N&{=UR3e;ll/GX GofmI_L|:,KvfJ=P}\!ʗA~{!eN\_}qeʼnI}ljxSҴMs&i cuvSom`YU :c NE8O:]:)ս4kCe'Q/Z,qҧB=&\|3'ҏ=@97f^ qAYV[دjVHgռKO-*/0ZL9w<(2XTP>XCsZ農+lN>ĹcciQg9g.Y}@fAzC%FaEcpã%&uul̑~`~}3d}c[ւ7BH$Ϋ,oS?i/qvVѝ'9jn.\aDވyZ񜲼b]>L,ุ5-Ӗ&518}⑘="kOA@й\,%F@h #ОعDjp:#Wg|ƞ3&cCM3@^2xPj53; S8䘟L?3 InrQ Y.OyMz\RQ/uENPSzsI4:Djg?ғ+pؘҺ+fWv[y[S|W^^LQdO3#a] */Ǣ⛣ݽe;sxc35Y?o^zkK75|[.I$c@V i\JyЦkoW-p5y&zLNMoT8ڊ+FOQo'ei,<Coy,K[ 6G{.,ZOn9qEX;ZEW:J(]'@8 t}.CBԡ ujVv;:IҨ舜o3K& 7 ZLq[DwZF=4۪i3F.6*jrfj0bΊ'׋/ǟ.~vDv~FR 08i1[dsfwowA[J$+%W [Ee?|F)Zfnow+F]' N&a!JLV@zu2p8" zGq:eo!\&%+ ZN=\wj!Ć'|qq62kwSfBٓlcf& HGyh:8~dt;/}L(GK'o-@bj=#n@eymT۽I6#x#Ҋy |*o-\[ӬqLS {$4kQaGr nJ$\0uc/v.a?˔OG$(]kš)|8Wŀ222I62m("&'r2D:\9rvtaݙ[x{M7&ֹ}E) uGos&LYư˯o iESDh'+ ґGBSm:N0HD :ǩXӲxi`WFX"a;[3 9iʓ{wbmC@Nca$N7oCM$W$KÊe[&hSKݨhK=?dJⷙ(0ȉʞ^}53WjNlP!N~&-r~v}nxgd0Ӵ1^F̡P*7ZoovfId @aItsZ;" pr |S;M(P~U;3B+cW8^Iv+ ]RArZi뜏q7GRI[;âúy c*pv?Eaʎ6(3»Z"Xliϕ;ã#t&#^L/0]iǶwvy&CŢ}B5d$顇@*( ݕs-`15+~#G EJ3kP)dI.%m%7$푦p|qj bq 󽨰&:fUj|z6`=vP+ȭp]ٱԇ7e5~$_FUw㞘Y(OUƙLeJN̹G}ĻQ/_4^h+иewC-ɝ}u{_N>*d +Sc _M#Y6; |5g7G-hф Pd%d4@ Rpul,̡qqLHS?`ܩ1˃))8J^v`FϿbΕ,#+>8h|+z*$&2?G{Vl:fbs7CNj|Q˔pIf?[b-z r|K(NR˧MvN&_Imb: J`X \S_%yevT.TcR _uwph[-iJ;6 FBXN)HЗO pW HyD:m X n\0aw8 vҔ~*>Ҥ޷ϔb_aS08[߉;uAӳ<0QE2p[=0zZ=:\~p{m҉~Onn'xpu}ߋdzJ{o{1Ajh8ҧ2$w&[LSSΪqU*=և)z/jE<%qSKlQ]!'Hɥ{pQj Wdޒ[k7vb>Qˏ׿{ݢQ.8Mm8 HvHΥZS:dkLEh<;k Ec6X'|wc(tiC6#jn:a1/ &#ph^5t )ʴo$wS֙UO"b<2bR_8|Kw6e6w&S7Kiӻϒ&%8߃SL,Q]fjwэۨSC7j*afĜ?Mwqlӯ5D-Mr޿#c6 d'lR3ϳ+acj.|-P>a6\]∤Al rI?ɀ3ԣ-o89A`YL0Cm9h,̮3"~0,uy}j:OL3V6o~i--xiQn׃ȩ}O'I"F3gw_n?A<1[yXP߅fKe'Ww7~5 q6,d#X&ww PaSߒw`tfGFGL#uŠ[E:eɸ9 /$,&qzO~ EJ]f7;D7B q0E&\֒Iφ϶-kx]p䰧?F4N}}G>x&8 i-Y.3zNGC%ڮ)߬8f%EXդXSdtboi'9Ym:&aɨL^t}b8xaiܢjR,*(~ LJSۤ9 5X eLXƞmWhY5Rc璋50M*YgBDØ`J.$5!u*1k 7TgFs/IWv/ _oo~< ej1?B񬫯W:Bǝzquѿ9҉X̳WMK&e{aGm:qrq3!KS48t(ߠEx?$.h2;Q0η*1 jϠ arM&.E) y`c3!!~jY]$?d-fJr|ئ^VYzCu|8$A̢^7(r)YSmāAOfhDm?s^i6_zK*'FAh%sPܷbĞß/[x~1RquV)P+mtM7)DK-ِj2`b4._>@0{xfa'zwH 8z,b($Kx;y1`FkX1@Df[ Q8BwA!Y,YAYG_͚ d>j%%I' Pׅmwd0͵wGLQ%aaEfxN?}ߞ?z~H._ȔDLL;AS,拔?Ll5u yŖŹ͉O#f'_9j6 cg5ꦱeJ>w}hJSrVH~Dd!e"7"bʋоe~ '@{8L83*+yѧ4&;$pmя,z3SP\0&g\ M]z^ iֳz.Scn u-a1",dM/t ZM6l6ht̨VÎkSN7r*s&՜oԥô!\#/cLJ>3TBX)j3%9W k&Cy>=Bd8G}A}g$N.*Ӝwu Mxq}bIer2Q!Z6;wo4JL.8l 'UɡN,&êfW٪Lu:TNeպ8uCF&-EYVkF; \y@En^ @(۝֛4C] '6 HtIfɟ]}bv{PV 0$Oꊚ vdVfGK[ nUu{|}[0L՗A<"g'0,$Ba S<~a&x $Ŝ!ۈr%fj ˂)畂vaޛ/-2I~plbbY$9hTf#- !7v5"r?C=>Yi .u0.ZVPA0g"Sir.Q.4[@"~Z v[̹LRxX _$YΔkԤX٥g'Q'"[k(_r-LΜL&Gɷ#xʾth2ZH ml -qZTnOG$ F=#(sSyҾHVHp_Z;"4s YJ J~lI.~$ W5Aaq2::d^dՆ#fL F!8rA6^&[C\ބ~iLH 77& kd ͹T8a')M;4PN//2d5 eK ﲙmn?\]rN̷x烙OP.s,̈́V?ͽCVMb^5(o ;N@me\l&EGa -qkX Idw[65I譊00ˢT0~vY6⁄SfRW¸ua՞L9P>_5|9jB¾i4!& $_O?7_..>7󍓇^֛C?_\nnEŰMAӳ[<3 @0|b<oFYhNL$}Dhn7sC𪆟4%c aOfs쒙+w&o 1fT̺zQH!X naۈ0O[CB _u{ZJ~[_:cΔc. YFAݾOPSVH%y9̣n.fEx뛳mcpGd4Z~ ՟c[cZ&ޯ\fplM4ͤjvfǶyԦ#ppw{w=OgfڰcjeXc`R d(ݷTl8nc1I?*#PT)]s-&C e0 cY,1NhHΞxHaVfAH=6T \RB-ki tĒ<@5$6? =+3BHُZO=`M֌|ȏi{pxhCzR90yb  Vw&9'_>ω=~-uDyHg$\s3+Nmb"rŬ;8IfE{**XdUzdg_?J-]L"N_yDŽ]Hiyв2Hf9}Mb6MQ: |z܆z/gn_R{1؍rzc&^4–tT.Ij0`zs8t)*.Hʙirj!j/Nn(Fe@2\mXV"'ŝ_!7p)d+GI8!¨37%,46ȸHE%NDSjT83jnċyC{FOjyi%Id[J|A.*M2ل'TH͊,nq adQR62)tkS49 9)RS(^K~gܐIE8-jDM.SW܁s.'.y ƺVlN86Q 6-%tZ9ܺ3zCфbS WVF ͭ䤘D&Ҿ|SWŽgX9O QObtYwBд{nG~b}8\1߇/")\+]w2*Ygt6|+#f9"?"ڛ@Bs]Ƕ*87( .򩐉Så `?¾n0A^sQY %mgC/b_[L-XZWAϴ/zx1B쁏}*qdA r(U+>ܷ-1K ~Z"hlď23X3hZLK Y= K'K<^-?{\u_̞~ |kbN86TvRƭ1VH1^L)=REgiS9\e(0iuΐJ zWG\6Űn˦wnXolbnq&8F\Q;Q,+LKڦup$]V դmALT^xLQ{$f5ia7DyMV윘MkŽ|f4bQ5{yy1㘤H3o!(.j[֍PQ5}nT4e-b5RtٖUi~$8q6qdI@ǹʠ塔GT(Ƨi@qí4$},bsL2L//sՙhQ:kޗs i?_Ϡk0>7Ԛ/6[ǒXMd}i( ƆE'^(]|#.\l.,%U~X-&VWƝA܏ c+W5 &@q3\L}>\*W[.C`BAߎR7=AS|-)V>'0*+ޘdK?I$O6PtԻ:$7n(ˍФܲdyep$|,ad,q k_HҨ 4'p vi8S0†K }Dk2Jg/CT H*iYID{+@ݚpAdOf٤2VWcjaky6*̎e\Sy$TRzL7khF+$ir $}s9sn6"γZși>"nlxToR:go,fSaLFDL~\7LLo5S0)Ԃ\tiuL2e-h&OL 9#]fS.D,O>nq,ߏY2ӘSĦwfYKl̛[&Lpf&_>Y O9cuVCle Kxw8wy%"_g m؝Y\ ,IwڼtRfЭ3O-%4)mk-05nϨ&-Qd\\8MOMx ˎ''n%C' cff .63:C[Y?Ugö-tA"R~{PEF&d^)J5h2ȥ:5I"cb+tr-UeP{k:<@֯u+Y^)֙\]uzęo(71F\} jr,y- E#2 l_4i0ˎ^ƫ}8L9$Z5.Mq{@+3+'NdIgx: ^j:zrTdI$D!J H7 J9Z~0oTې[*튵p1f:[$}6qm1Ҽ'l7u)?s0(t'4XjIc cbhuwޗ[paV.+րG *  ñގQ.HE< |!v}pʼ>xO9`R zJʌRKK6JNh̴K;dX kb\lχb"c ҰuyƘ"1Q ҙlpF5jp.ݝ\og© AܺÁǤ$ FS=%T!#ڒTwG˫˻Ӵ/ֵOV>ƭ~jq\}WF) W瀜34_S{r`=\<>=iUp~7ޚoC 4 tt}a_¨C͊FI|ղh] Y&*F צSX\ d.YWIHҖ)X) 7ln﬚m|51ԏˠ<*֙&5 .a~|Ez:gʱp239JK;H& ktXr]hc?e:skVqy/x'1~^%?/FU'݃.ЍTgN}G7M(#'nz%Ǵ+ڥ?f.\qr d~ i Qe<񬠮kLA D⇼&Ú< $;\~P@2'+!8gWag$6?vc@7v,sM2]fyF{:đjơ]|8QR| SKD1܁ Cw-щu5t܀&ޕȪO/tc {U`.8$iYȞ" =f4Ol1}g dZ{č ~eH )uMTP*h`aCV.,1󴡡e1- OaTV/"vTШŇ8proڬ&Y '3Ntu ^=.jisժP$(ЪqMx!UIU[-Mu>Zm MJʙxXq|!10pphب8fLjXi$<Òv==SZ{CAjVx iwE]v =[FZ4ß( ,';׸cK*ļGIrT}lj.ѓOWgF]Cm1˶5Lo4ihz%(WPWMY4TSM MBwƽIRM'Mlyd{h+Nl-8FNZmْ5D9NV+ճFbCqa|0 3=A!ZIMl[F76.df&pie$l>F{ޮfwN =5/ra|;r 4[& D+yLe൦$ʲ4JE0u̟nN-պ<1|l;֠g2cXoTq?e\b q&^W]?՟6=27~<]gq+YYI>;IM5Z5 üd|=(sݧB 8Kwmfg?M;N]]-SRUܬuVzxjZlO+.z`fʪ0kZ#G04^iV NEpOleL'jsWc+o!fgY5' -ZVI3`f  jc#uPM(1CT1Il61nS ln6<+3iwz@Q[~K q7x.M4vb@qi꾫ߟstG^+UsyUV~vt0DdG쩈D(=rQt=CV3i.&HT% ifQTsz)`(.*}W:"O->3Ny`^qMCw͞9Q㡕u1eJ]+uvILPivV.%dAK767@YI :maxU*=~𳷵MdcCZA{ 2y\Ǔț`s5Z0ʜsw.0zq[PL>e2mT#6ca^eCs">u2S o.yLR7$ɏ&4Ƭt3xjYdDz4T#n)a2FD)MsNݤ i g=XVS3G HIgJԱL?hl4%WpI~VULz6l>S 98ah47_ݹe__2Բ .UMd=v,篼"IM+_lܔo#s*Eð3$}wrP3X;OSDJES _2%!`*^m=Բ.?{ /V;6yEwzG@ܓ jH1uN̜2QXuRnJV1˗ȖE ۺX }ybIlq>W5e{ H(fa]H^;IPQ*\Ѥg3 ]QMvۇio<오aE~Ѣ'n (j5okRkddXcy}TQR7aKd1ƆԸE `-C`+$ٱ g#K'P3?I 2HgHKØ?|GQ7Q]:.fJt4QrM<5ӚީA%EsuhzqtQȳxvol*%W0fLIY DQ9Jŭ֓ų>ʃBxj/=O ^$n!\ b%R6|ڨXK)}BOխRoL lczkS.$22N.3J{p8EzlqIҤ?<c@!zUxJh|&ɀH&†tFmX_\]_|, j\ 8ΕWҙʤڴ\hy:m[}͚ږA34+7\*Q@r^ &rJgɟL_YEO~;nHF0ʀ `CPy>Q1cQ#"AAeRu> cJ:õE)lrShӰ XA@_05(="3mϸm(6E _Mp U4Wjߒǥ>-EzAi8x5)K $uX?l0z| +!ܴ+Ahӱyq~qyz9*؁B_ՙ); Żѻ]^Ol ULWD݈:+7v >eAq TFƠ$-ԭ%,Ym>ZP˹1ʉɬ+7uDV-iP)]3#թc=o*z˫#z_ xݲ>baS]~yjH1o!NΞH@狻jp"VU0pѠaOj q<&<(7zƓcEH{2N0)(TDdH}m쩟j|og'Ugz WGcp|ˏէOWKL+ EUDv ^bU2JvgXtE⤜\|oտ}9O~;;NUT-DrkCS=,<>3C#F}6 5 /]jt:P2<8lťsL>~=di1U*IQĖi_"Ho귈ß9dJ '+"R[dĺ_+yr/6F:`Rx6~ kԹ5g⪥!O!zE=i<۶~נ[pi2OyofVkwЄg%*&<Bq@nd)眇5 /)ǥ-)ZBڡO1W @[F"jKPfmC;>|jx#B۩g_WmO19"ˀU]߇?ƫfdNk6Bv: z);Cz~PKs愰8b&с/LRTsNw&}bҟ$GEM"`۲"2.jeȗ@Qgw[M (U$AV xHo")'<$F-[-<-iiѺ<2v ]N+!g[ʣ.0@)M9ѴBԟӄ FFؘ>BO}J#揶ۏ^Y>Bk8I}y]?vrl.:K7SBAc@Vb tfkY$ X,&)&I0[wW.a8*T:"Va Sۏ4N 6aqSv.UX+ &nVnRp͒O7Az)<1Paj{ ~DPJk>݀auٳ(X.33DflQ_YD'*BL&Ŀ=t?4G8aii|_*".Ӵ dYfh=3(ױQPcLDBQ$A ,; <8Vpi;KEhi0cۍc),5L{=xxxECpCp'/qTW@xn6+Lml UP&Լ9k{<dOJ_<ݠ͝U[..n2Q!6ٺQ|ēò0Čk1̚Trh בi-M%E3>0; nX<,B %˗QSE;ęЂEOc7΁uIW(k倍f; AeK\ז.}ܹ/sTɮrKC-wY1ȓfOÊ D+i| FoLCna?'cbJĕ6[H#ϪUkhiOGtQV* aڥhy*m5#\_SiuY@T Oe!>4W:lu2VEDE=ljb8EKrF4TǬHIMmr[^=i--xe+'|@&,x׍g3^2u*`M7hyZܥfĽ$Т/j ¥Q-<j^z1V@D8yA80%B`ĭ=Wfwr2aTO(ReRmKY,nΝ9;o\V<Hce(Y#fruŰD7g9lvW<+^_~?P5QQ=#V>wƃ2\qHnVOU([ {o~+8zM?`G41},6#A;@?A:౉8K,?! oZ>B SnvI[udOC/5l݌ީq,-lLhr楩2C)FY 6p=VDZ$APȩx6:ҧh4.ayYv}K;e$gYrnֺ^7ެŦ~SKudSТ=6%KA+ZrpEEMǺL-[&7*:3NF<>MlLnJ:i$ A^^9ܸm#O>URps!~I]z/ K//FZK>WUeחg.jq[5YgOa%I FYԣ'`}}~uC/ҩpfAj=yǚ%@o>)EIT`,o:)e,P㣳QW /W 9 |{_oQDql=K9G)S`B25"Vjvehs^1a3BZ;ݓ2F:ɖ ?# 3 pI^X*$c э̋_w5[p,ݱYt)y^MWP&{ Lvs)*uedk"o -P 3(梆0XY)~܋Wܑ]+K@DҶ*>]sS)i/{ v|Ԝ7v= n#g'f1&@(pJwZך#RBF9:Yel7A^=)Fk*{534Ȏ 0;6sKoE:lR7^F}!7ȠMdXrs 8Jg,UC/I:3{KO> ݪV7O,+^@xS$JⵝͼBއuwu%5zV,kt1dϯP0^F+\Υ׳6nFLz-hYiFC]Lgr<-a'Џ;èYr)غ Ũdtg{w}JOn{,le .YX;X/NB@mq=zl︥l&4:<@%;"+(Wy>5hx<'e+f UX\P~J3 ڊ>y6\j/-}i&jyU%9j+̳B«fY)FguF2HS#Hgf*ƺfmEEↂfZMM?vEq )Z^>nI91bdkp+>0+2G0IGj+dU}]{W;3bI3S.euPiȘ&*ҲDxz([*zBOY-cӽwUg90=|/5~aװ1R /Z+w50+q$ ow" 0|DOUgB8@{H)eWSl:21D&V{E-#$btE 9SIRшjR|@Tl@+C3 cDƯH~ٛS?i+R0l7VHـ==Gy`jw7bsleV1ʜ"c%]Gtz LݓY=I_2KSˑY=;  RkvλJ럻G YkJ~s/2WjIKBX=i}~cIߧm !ebˏ?C$ޚLOq`@vlsE&?8$VuM^=ɚw+B2TO@3ᣋ JהEkuRw`Xw.sxQڑ陳Ǚ%F{5P(_oNw8_iqKb4swj>3w%0BC`4LZCE.hחW$#B%lO]AU(xfUO]>%6S֮q= e LDsU jQLJF厷rZ<Y-\e r Us@JIM 2]_,mDАX*v#vRR Үq! V<'mxF^DުS<лYxGq<6 ϢARJ #4 <j"VsYQg\JijL&g܃,pkRС!oR'fa-Ǥw Zlb4 t!Ƿ |*`}Nh0 }j95 d Tʋ$#-dDgZ\%k!˓< -o+/l4 j=#OvqzXiBS3;×!3%{=i&x7'?' EXvgeDVLEJ.)D'i P3/e#{9[15>MC$.!-q<=~G.\ejc|jSr"7E7$*0s)1y?BΦ I +&t'&P`H5QfDb^GZ8pzqޞA/Ͷ8TXny4Fh7L | X$jtH4, VSL/7F 2qV۴Z#0ŬiWQbXb0z/O_~r{]l'tӱ񖀰iǼ522I7]ᕖ:;|yP.Sa[e4t8PbPb(~~: i4nH}n!`xH~4BfFpd/ג7ǯMq{F7bDt/,.iZgǙT:ZL* sK|(׬m^T#R!8ĥ$h@s ʊYv̩èMSy # go\o)'ݸ>,:Hc[is7nJyw)&>!HN%{+b8k(  'y`P\RWe60ŇމSgssGPR,!)Y trܔ~r ff}ƼW0^X'mٲܺ8gqB|8!S?S Q1dAxxFȁFjXEt|$`&| ;?xgEyҾbpMmQŵ$V tPUwig r!/UIZ|g4w,Ö(ԥ y6G|XQt[#2Ƭ=|(l&1 AK:1м1U&II@+Ѡ@ԦB,!P&8UWeŕP xI _}ҪQƙ{K1*9S2Y嬯dq3XB9Ke߱w7ٶT@~> )gNVÐx2oS-H'ƨze6 9EM!a< }ӄkƨ%Y##2D]1gwyOOAZRI ! :|~vw]q,L&HM Ɍ)/lA`B!O, 切1'&"dW>XjMNc}Ca.XҋH:?fi/yR#I19u5eN։":'j6m%K"Nmw>J3mӤwP^p5WeTNY+ jJdnN3/:oBǢA ̜|$PAG=¨tUڊz8ʉʙmZvsr{~u_6=AxL+c݂$m9˚];Gǥud߲مw8 ڍ)c6 &wmMS [䀸B3'V¡W=*A~]dT9{5LeR kLXnnt{u.[koAkvd@E(@g!LFU8zxJ/٦QzƬ+ i3$}>ITsjڜzWmB}ŽZ0:չ/Yd~:l<%}.k km$E{g3}R,9/VƊ2˛ ۺ3X^qGWhqɩίԘj֦k5zR9&vR<ƛM7-njYza,F-SpZ=d4AE5fiT5֪uv$ ,*'^zJNpŔ[ix{x0x4 J]9)ypC.N!,6OMbL!6#NFXI* #\qRc/JvTc0<6i:jmqp減Z?""$E5?9RLNRHijUoY9|Tn+}qZ|d!;֡s/H9Um5ө, k5(❹{QْXp =)Uݽy; i<{$qHBjӁFIT}8O9:h7u{f5VVCޛFw/\JVdw>ܞ\1/qjiտxᘞ7uśuj*󕹓Қ)5U'@UM"p1*^(Uff-SͩPp/yMTyKC%) `oչK'LSU#Fl/rP,:#|,ByJ Ӄҋ8-^x}k.:]ppd5j\J^aW$V3 &13./%#I {حħ+N[6,yUKZ5PfMp]uL wD=S&d4-24ըC aJFiwC潀xޒE`i 0TQIJwu0)4O"e@I"obU}E3:cfqsB އ\G\\>R >) /v\h' noON_NOI-kUԜi l/~kb8=ӞSz"D|^+JDIZ"!˖#1䞂LV%{I#cbC<קFW$?K}!*0JY[C*2hK2nC49L0hT0kBK \eҲoNhu6ĬfQ3%zOI\{JD·ߖC!2dwB7\B1ņ$g6(988wgpft9yx2ԡ-xrwH F7N*vH˦5 v؇gf(7o6#MKpsqn8 J&>&$t)2ØHk0nܣ4 !5CJ <Ңr$MG㬆>֕D+:`'F$4=$c*W)<LwxtY:fČRU;̧q<*)6L&TljXGz9g8$ghBK ?Kn0l6sM@wQH[ܜ"YkkZ|jn4_Dȡ.*m gi22UT$I̖] hR.?#h¢hduXfWLe/5$a78JwJj>C|@ 700 b v+G:ͭ҄ZT]N]^)ƕ(X Yn%ā&gMfV Oً@()Bq5Vzsvą V߆Bi:~3<*īf>=Z&G_/5 f @l 梲 P%SBpޯYrINidMKb$yNCSS7Be<89R_#T\8ܭuLe s=5i-/HY ҥ\Ev<'H*s[ZшYZ(䅮/x̵V~) 0LzYIr:R=a X!')O2g` c%8KYAK|gZ,?NTF'@VK ךB6rL YH1N6NPs"v~ ܅ Uq^zl+ y +nHnNH˱((׭3Rđ ܃† C4˪>LQiyCU{`$}]'Q6j<+nWMǓ'5fP{a2әI"٪c|ӓۓӟʂPk>W00gO ߚF}, qO!A18}¸ߟВ!IFKSc}}d )\"?|˖v-6=?> On/Ac堷ݟ&P O7JZ3vs5g_rrCG`Ť*к5yvdŔ`l.UL Mfhډ/$X(X5rxe>z⯦yH(OM#'a:ز0܂cqRV5`*h%ɺ-ITD[EO{QW%&g3I{WYC6݅9;d!e&ګof_QGiHR|kꃼmm$UGzk\2qU3=2 U5^nիW_W,Z(JߞFNk4S(\~\0ӒbZG{B/ǽ "Ԅ}0OT.`EۻyPn,];BZAz ɸgƐy\J!cF 'Ybnzfǁ.D 7x'Wwӝ7V<@ 7|(CpfFuxP虢u.Ywy =D*=7}{GJdkv`o8l2%94?=9PeC :.A%zE[LzqPtGclGZ<M-,06I.YHC>jÑO}>=3P΀b%2qd,-W-0dO(Bm I7 C(wI2[`R]vsn)ȩbM✅ ,sN@#@p=&esPN O1W2*c/Y qR3 f#KKJJ֏vLgzQZ9:3dJec]Z sz#>s5wn }䚗WF߀uw<,W:˻o檲Om)Q6VVͲiP:+\Q;յ-JvuΤDխ{Ӱ؏nRë5Jpi[Ө 3 jmV&3]ݣh̝ uNoy.wwՐ@>3:@6 U#S .V!_*~!]b7>!M>Yg.ʽݘߖz֢`Ψ$,ߚ9/zm ZIhD]9B:f Ko{{˽3< ӛ6|MtJQvǰa\:)}Al85 Dl3vY*K M/)4>.oIR^omom¡UÝy K8syKtHfGF6m/8FZ p}.Tsg^Ϟ''W͓S1ZJ wȡS:WO [ZxMIULbwTu#,!WB#Tq&e܇}WŸ1{1V 飬Kq ?m+v2~la[WZQvNrql$X"8-5DC`9it ~wjH* ݚx,,aUpap:H lH轺7=oFӆ.j;EZU+]<4nSRLEά_DƟ8Vzm瓾dnF0'T |i\5/I~"| W^g!73~l"1 GAZol\-i<pcgoPaM1k0ζ'c(0.Bc]8aTLV5Ǹ lZTEJ OL9dp2G#,x0`jp;c+[gK/qzfdYɦWF}>֑ m?2pM䇪PiUD5ޭ#/EY*Crwf٘BZ,+kUF7ຌ$ĉUZft6MdMt]ݹ?|L. 뜧1M Q0 SUݣ}s8ӥ*[ɒ& ȃG\.Ҽ tV2d){IkёUVQ^g" =J |GD:ց⬗9EcTv[C *hWy3S+7Q˙z lgRHy𣆆VÂ0=dvzx?^J=msX*G;>_jw.1fSHRϗs} 4. K+DFx6Y͖AI^y.PD"-!Z;Y"3繍Q2HS5sVOKsAl |L$#gV݆S^dDFm ѽ6:[62:3Sgzpe w3)Jb^DttQۑ *޳ٞOg\?>G TJc2vfvikپAy])7|uw)MY 0S 3I])N}΃`d}a&xѽw*9!" uҾ raO4g<Ϧ(Ҁл!Yx!ֵvujZ"xx%5O&Κa jO+c%kr# Z՜jn%ԫag6V"lь#zrf,y ?AԦ@SU?O -Y`7"vNL's ,[-`61\}U6y9O-14KL\Yk4Z!p Bo%bFjÃeфmi%(e>y4L|A1ձyvkoR5#ݣ~rW/Тk+{-PDNcaA#ww[7nm@|t×q(NjH±M3{ Z{[^7H+C+qo: AgO<͜򭽝"«'^,S0؇'(}e0Zt8~DXq1#R V`,"?jGשxϸ%X^067f֧hM3Qɴ7p=qIU{}a{Yb,醨ulZ,~r Ć6 Zb(Y:f w[g zp뮀=(66Awqâ0"cuU) 2&٨iHGlhi&DԦnrh$Tk[!pSB[\A ]}GFI"j_i}@[f4y+vwv +;=S/LJhMz +jـT<ջG%Uj]~ݽ};#roQd4e(V$9ö CX2D$86D+umh[M5&X1NU0uot&#tNbTV;FMݸ [I'@zl|h{kpSU6Iωf[ɶ]2k,s-k"pB<$c]̪sE>Y4):zH`dh޾MxWZ hW淧X ݚ qyWvϺ>-v(r$CvC8,>&UdRhT.,cu[Os>Vq  UM^[E ƚ0͢ҲI+Y&0l9,h.*cow=SNYǖVyˡ u^ܜ֣."Q|Q76[87ݟ 6#֨V6 3ݯ}A cVĚ(I>Zqst=[ʀK3dž"< "ɔ"RG_e${9 <eBg CX(_˷n9+=2{uO`/ mfX7Rl* 6>QWB-7QOffy ihG}Yj]|l~ Ǻ- oq6g_^rӢ\;CЬ40s*2^ۋJ8dʬ4,9`d+Rm'u{hKSpV^ENX3ߛRn.Xa`dSL2 sj^Y`o_b@~=jsOB\?IQbˉi\RB_?4dy]1mЮ,x`V^=B&mx5pC2 U}el<_zҎ$q^߂n@[0Y *Ä*r* u_jo@J]d&&'o+wW_ =U>‚hY.}x#ŔlΛTA2_0G DROEJ" s\OKZ˞ԛ5 _]c{o6M,s9CLS#?ZV̽? wV}~ @_`,HfW6Oqhwq0:WUrmK6EiɻQ|OVoϨHy5gd$n߼–n8.q^c&Fz+bZtn4%l{'!jXJXU;u0~r>ugK$)c:FYsA{ڜ@ƯYqXA!'{#]~[28!Ⱥo|ׁ[tYp}?,P]{ uv|c-bF4_f(Z;+̢ڣ%kTUu :O׮4/a0}L8OPn6sp:hJceLгaw-)̿Fqg@CrWSx"ZsPE)㜍 *ߐqnILy>VѢٝnUN9+!ԋu+l['\=$*!K]9?xφ0ҐbڴaJf֡"4K" Vr՛E;Aw9F_. 8:_TKˠ_]ߟ_GggXM q@ʦfhpGPmqd&BbCnm,)|,ROM^߹%uL Ѯ:8FTqI:dqiTfEnpD'HL}0oӎ : |]K!mƌitKv&1_ 9~7>/*4h.r͉P\^ЙdD'åg%TlZI`?n|' `.f8k43 Cάtf!HDES\֞K|#7? :7&esS-dR7AT3 {g$Xڛd`IBI5 ;\dP3.`I:xrׇ{G%62G2V,ȬQe.6M& zcHLxpCbGLJx7O|9J[{-opc # Λc6Ѡ Gm㺫 \sCWXvK~G6;M;xk{gY*oAٵ/jwkP6ֈ7׀ R RWiβC(t ozTe7ښuk ]P0so%#3اajr$:]O׎Ӈ{DvQۗFoXYs;8r̽m4_; (2[H.׏2?q(D+ `Y|h"$@XU^ !-Z}BFgO`/ u %Xm=D(fdp *j<i4䙓YKYJ)?_`1EV*Z%5{(.|"T ;Q.F%KnjhA}[=JMV.gtMv}c(&WJ&gqCAk{yQ]p,RTez4=7aw4Nԙr≦qn~9(Ȏo֑)|5N=P PE뚌ۻApRZ܉]Kkm,A"h,P01ҹCTH%I.+µ,wpb)_ s@vCIJLR -?WŶGҕTϚ?MMZ1rc;)mS2usZp䈌'٪BqEA{)h$a uR29Q5${UZ鏃c@f)`ݪ`h A 0z,ut5s| &M k),48$RqA{%?!(t;KB V [OaNjY; R" #ӤvZ εطꦗjqŮ[yWB KØC 捛kiWƗwlCаZtWK{;Yp7@,`b%'<3E Zdn.IfN:: vdN'DZ^ fa ’B&\] XjN{zz-5x%4}ߥF^teNπ^*i8#1 xa}[Enh9Gòq%@R, [uaJ-kBYq gb% zIw@{{; z,6;) 83$z;5WgkwkөFB+^Gs(vLM8sg ,+m^lBFnjΰu(/C3Sҿ|{z{~v~uqFO:őaH#ҁՑZStN=p'$uԽ9::T/WqԣW2Z8;Wf96[09:s;t'xxÝKȇ!o) {Tdm.3t4JPHq TVG'hl-cϏ;Z~˱{pLb>˂wdnlGX -ba/ħӰ²DjiTnt= A |iwr_V_=9C #s8/!ͼ]`qoRr><"Ye)31 d,#.qNYwκ:KPs v/E#[\9IͲqwHVFMdnQC3c Bex\Ko.(zo0gC-dH`w /JO>msV‚$u K(?oVo)0CRM1|8Sۂ_Yf2:zq{~srqk")xwLNJOI)J4"'k6/Ok|)Ls<`D0sC$pV t7Pq =_GDQ?ţ(4?'F!gm廅)jtV+ؒt\ ЬC|pp3] М QXe2؋3T_K: z3M WYOց&j9hI"`Ys{y߆AX<=85VѮe-8_B%өhn8EQJAoH}ލ}Ȝ(V1tw& $̳?+)-$Huwecjumݖ9GWČ5O}􀊬<#<ڧs"%FDè #ОعDjp:!#Wg|OG3&#CQM')f|d+̓_dVp3(Lc~z0~dZ \{8E`̤%[V/3.=:(件Q1K}<5H[)S"=gJ.V"w9lH,; H1Hnm+uY+r:E"PWdԙ+"_ԨK+ل÷>jw[y czre#벽@CБ (S!չ#|& 0>g&7(؊+F'WuA' }8ܝ[sUnMǑfT0N5|#' &ԳLJ CgǘQ?\<9TXކ|4igϮᢈ]l:l'Ԁ'FZH~H^d{+M 0?,- r%'sn+ 8U;wqcb3sTΣAe;1aON,ogW7,nc 67yx iÕoYOZ+~[f|gw$P遠bFa-T69\JbJMrx{t7 @„AsKIQ@D222I62WmSGH!t8"N9;}L-CY\Ӿ٢:{΄)CdƐV4EdDb%1Dwt gǑ-GT v'q7E :ǩXӼhi`WFX"a;[3 iʓ*cpӘt7X too5Rnh%'V=.KEņ2t}D_mw-3T'$33>,o=5iP`=0wjNlP!N~&-r~>74m̶'s+io{G[GpgkfYFk@/ PXR"Yhh@;{;n@BbZCNBN_OvzJa; OtgWݑzFtegѫ^5ne7ޡw*LX#lq:H;ik|gpX`X7Av##`LΎy_*k)[M7 J .0[sHe׍2cíeoFNyPe+*Iz!Є,Iʋ*tr;`Ja #/Y!v` S@4ڝ,ԥdv9=4].C/N!|B-^5aDG[Qe|v]ΧyCZAn̎fZl]H/?&Δ 0hLt5#{))׺ _uPި,Hk$AI| .FUjw㞘1PbS K3 f™3#3'ͩw^;Mi+аWv8ϓ{޿:^5LKԯpLYL'|5d\vુB=gYC̞ C' pd^.VkPMFK?;e>'19xL~>Qb13ۜ9q S6%MlLX -0-I(N؏.6q۱.BCMhfzupm["r8Cӥ?8\Ƥ*'ж[.WiJ;6 FBXs'ԔrK'gcHyD:m>DhLtn;I"0͇€B-6u3Z4]yш ,! haD7 6=IdoQ~$xYI9L4[[|Usn'& LήN`9u `n֜z:'. EPDTݻ ۗZ_ ]P&wȮ2@+-= N&1FJ3~?w7Ni_ Iv"T'5]Z:I)TW6Y#[v?tWKP;|A(NJkYQ[Ku~fkYM(h#Rqv)lZBߋAGP@p 1"=LX.:QujFMP%̌s`]kxH ѪcDK{r_hcďć m,t0T15hf(w} YIeBtӶP{{QHҠgсA9iycz˗Q@;'%hvF2}N"Xum}[(c kO |]*@I{F_4Z}oQNǃȩ|_/'I"F3oOݞya< 7fOo/>}9u$7lXVFZu 3샰t%o$6( G0joj%%/`BrVQ{aӏ$ߟ7Pt evCts-A 3N+ZZ2inY%oYK7GcwePΒÞL| i „Ƕ|0'(0];P48 @k6;ks㘕XO`UbQNwVѡSI;glf5 92{9qB Bҫ !r H9ELUP8,0)Nmڣ(`)2a~Ѳj$%kaOWgVգ,Pm9G"ߞ~7+~9ק'Z:Q~w6SyhI 5W<.qLLҔo5<00'56"8$.6xu(eR"&Dm4!L.D҅']l,"{tNc~yQwQdhꛘsE&AGOk_+a4RqK[fG҆P.v ݗd| H^%mTH(oW$Y٦%7ն)WUP]uR-Iуb?Ӱ +BxG 64 7~ J-KRD>%AB4ru4|8A J%+]͵'LD"])NnkU MI-^jɆWq''|B)CƋ0džM 1|qB_ȗ\= u73j8t 6N(}`,Y,Y@YE_͚ d94|ԒKJ/'F CԖ4 1GdX솿J`5+Ƨs [޿/Onj~H._ДDLL; ]է'͏2j3f\=. [6'ƿ |ī2N5ꦱer>w}jhJS5zo@H~Dd!e"7EĦf× *aap6 *+$=O/4&;ď!pmя,z=-nW.P3@5/W 5Mknezԍp}>x0!F4G/ާ91N-/lq뛫o77Lji!U6MwE%5Jf פź\h=-KMc'Ŕӏ^Af ygvoTL#8Ѣo:ץ!\#cLJ>STB)j36%9W k&Ey>=Bd8d+N XY>ty% hiFFwFxBk^ܜZRL|FjE3Ν #Rȅw-6"z\EՉJdb8,kv*hZPDA]37ddRNej4 Z_Ձ_Xƨy呆V 5yv{A,zlwZoR$շ/Ol3'ݷ;J'~sUS;1 kF]a zEI)C5- vdVf?3Ǐ=M)ܪbj悷^}a왪/eBYHRRO`XR7IYch< 6~|$D% L(wXn& 4r^)l#,G"$17Ȗ(.ӊF n:t2 LzMWÜ] -ұtuA]ڑ`4n[jwB10N˥[trdR]L^%Ik D8ByZM: ~9O^><WdKq+Yn ӟ t0om̤R{RB[fQ2.`V(i 'g\*,+YT ZNi>b#YZ#M4~km2QR J~lI.~& S5DqUha"zUՖNp0p6vIǑ !}7&Vk.km6Y~xv~ 6܈,xn<s[s3NQOR"vh^R^pae6j~.-4>fi'wr}}y:I=C(~Jn>~{'*mp zne}|g`Hz%T9D#x>7?+tR<(.3YiqEܘm@ f ?i+Jjž%3%*.VL<ۨ-cel0GYW 1nKX`c-z Sa`l#d[!tYҐBɤuUGppw!vnwϺ4 |"FZ.ɱ0_: >ܞ[n=$#1^gDk[+2VNlѳu#}~iؚzJs!±587ى;6}rSJl>7O;[UZҚiVؖaa;I1Rq9hH<V>Lx6 H5E=b9t,[0vٚb, [Gr Dzfyooԉߣ/|fnZjF|HL; xpUa!CUoÄ 2|H_i&mUqrl H0";vða+7=N.ŪyLu?[-Gw]&C4ҙS9gI+Cل@ j@#yHEgH='zRlnyC|>)KJ)f{ۮƑ,];BsρIc f*LS$0@fu4%Jl-ɀg:Kw?{IvYCUP(^˳3"[l"e$p-ѪEǍM( ũ7½&qlC8J04xoa"BFw$gPO~>>ÄR@Ph˖i#/Fnb$P@M<Ɂ ORiߞB!dG>0jFJ>Gzxh#z20>xj"cVGWߧ9_=υ=~J"=/:WW)eIM ['4Z}VlSpz/:=bIP MJ v7~-5HK` S3&,~JV('xBXϜ^[yγ9YísǢ̐RN:)tQ KN.> +:*ËVmy!6B׶/]A9j1uG҃=on9{{d5 -[q_[rTh ȵK4o uū&e<÷d0LeiC×Gjt$˺|R Fǀywthkt,,OMo6u-OAMFSxJY{^$8[Z W9k8 iKY-ɘeSd\P#"-T@Oĥ4mmztZ{wؚmDw`#S" b*wBuEr' y8:ijj4t_<%y鸚MR:1#+G __$jфO;'4om<6:]t|͏9XR{hEXZr ] -I2*Ձp?^z@ro%"GKoȀSuWb78;-rZC ~m4.dY00ӳr$u_Un}Rƻ1~~ۋrc%&Qo4,–,]a(pRUb'pC =3edj/C^^}hs^+z%9FLd± X?J,dql# =Qw:hJYi|I1k O>\FZTXsՌ݈'G놐 hy4YW_d[O\TT /#HTH{ a^\Pթlˢ5_[By]EIʱNK!3>w& 4qEUO4y70zڅ6Yu!XW )>DYӁpsg g|XJ(FG%GZ=3  ͭԤq"fdt ԟ2p |9b!r;pq8Š+Cݺ4C6^ۑΗo+f|q@$ {Px'32yFW;bV_C/q{Cd/lt#t * 5^[t>o|08$wX[ʧB&:I r3Vh XKy /*4 C@K֒q8X8b:$ڷ'aH%Z5Q-11~i_oqb쁏+)qfA tI(h=f}Ĺo_OİC>MC%Ւ#-V fL(#q=@iijŴD]h\Yz%llE{Xd\苅ñA?F!zu2omOmʓp.$f6]ɭ]a. l"K,+NWK7`M꣬ˤ68C**y2)_>zaܫ+u ma/ÖMGxƱɛF_mN&'Q;Q,lS:VXnhl V0 U)D9$Q^Π=M'f5մ/DyMU31"k48řӥj:#wWcm'1"e΄ Fy s7PR7SEeSxA56j^[׶UƮlL%9{Hbl<.(RmULqO{d [i${,Q͍3e~^֪3ѢtZ/]8/| J 3s~Ciby, a$M僱+ߟ'S ,5ҘІamAN \Tnڤ9` YgD6ķ۳s0h%t~w4_/Zfza\uduBׯG~|H aR+l"N~>>!p%mwG?=PaE,\l-%U~e_Z-&g++0Dž۫bE#XtJDF,Gdo_EmeLT(qrWjG4H%eF)i>-:>;:}MO=zgc$Mzt:?.u>[ w9GnƸY HpEFa,K\5w4j.\] tz4)GibaQE~hoF:7Eލ{C2fkJezN,$ﴢ^B0J0P,Ь?_T&jlW;l:&bڬ2숽Q\J6o4gM0RjuzL7kh*IrϧN :,bH?r,fݲn?mDg+?P35<|"nx 0֩6R@Bn;+I3L!Hhn|aa~&cr ˲MH-@TyαdMfOW4j{f"V9?= *՝YT'Z?I"]0Wey nWeKoc_ҡ-N.zDk 9V,)·c[!$$ViknBĥ0FtwMQc&%c=Zh tfe 1\0?C_1{~} e+_2s_݅cVO|[7kٔ`'j%%qw^TY8ޏƞf kZV#A>.3pO鵶N#Ys:!fKZiL^c BCDc|p*Z2`0fg AfqFhN8KԭcF %~,26a' iT eWҠa=d:##m^+TیLT֞ޥnC{{6iy_ɸ,HN VkW0q ~;mA p^ C!3ZTh~֖Muiʢ%rQ{2>m6cZ.̲(8j/S%!~N&Mg&vF`:Pep‰<8Bƿ^Y"7QHyA$Ed/Ly2r4Z]1cuMvKdtٸm!FZ[bA>bxF5}ăK G(dKG ånvA%` 2pѱDZϒ0Kt3R=I\3A3׺},GXYv3dFbS\ X4EOk抠EX'qV,Qa+:,Ih}stҋ2ү2xEJ#vuU,a-'N2(UiISGhUzԒ}'kQf qO&_o#zG%}++4Pӭ,+Zk@C `í°/ #R#=t?82wxw9`"$=N`#yeF%F\F%'Xf;d<9K3/+G"9auyMƄ" 1 RG^pćuZ.]tr|K@8B P5w|~cj'[ FS$=T!d#ڒԤ{GYjczbri]j]GѤ5H1g1/٨r k9 L-jj?8OZwOZt8: Ƌ/7ote0 \&Axn|3lsucQt{zRs vY&*Fצ#,RmXZ2Q@$di˭6wvW6 Z?{GeP2Ϛuv^DF0 H=[rz:9sp2S39JSz64,۟ӉԺ($qt%:skVB /?wM2b>,cq^ՠ'0q0N>t[MFSXFD+s]c>zk9N<ܯ 7>j]fC t]{z l ?i̧]4YKUn%aAɝMsW4CʙTVZ_Y4uHOzY+㻍m BYJG/Az߼|U^9rT~h;c߲o$gcJ zA>hDYEVoWeQ$Ra 7?:/ttEb6Fka*l0aKnBΞ"l=f`mWl1`d Z {HFOӄó|:>G?}%*(x4!w+#X<q󴡑e1-KOaTf/r )쨞eQ7q>erQBƁ7mD,az&M:t ^?RYA֜p$H! S7. d*5ɵ ]s><.6^ɬIyr%0;6b,|pӃu"d1 u/ӊZm+-TrR3Z'Gd=~륑~GzS<Hn_BiU-#63 >8Zz\ps؝{jVћ$=Hz=؍E`_>iDN.;ƴ]Cm3˾uLo4ijJ QZh$ 3-6{4n  kZ'EU`,33C+v8!`9jڎo*'+otY3d?lzbSqa|p s=A!ZIͣٶ'voPqAm\M2wRWepxôUdvuxW qk_U?| eiB8,oJ7) j:!A, \.Q~ICD$]WIh]劑e{m8W<ߐanRS}g!$s⸊ar%URrMaLcORu,Oi ?Y\LVd2''yF@qsv\cdzurY"PA:ݷ/7>~7R~376d4ۖ[wYtM,!]JNE ir%sj~wFI ~iq4P-ZQې+afY~yVk>Nե%C ç4LC>OgԙxrD,}_g&Re;J[jYLϵXOMiRs)X@9 rkee4-a\FD;69S(GKbۈD)Xyury,ݧhV"6.XT([ԏ9ý.w.dpx E`NbО+稠ԧwtifr=׭so.ȹ1nV$beCdjҰ,J#w%mtLJǘ*z=f3~ʂ)|=vW>y%#rҌ/$oW`O&MPK'65ɖнtdB'psM%زY%p|z[W0 ͣdc ^pf]6egKjɀqiHj~{_W-4U &9pD6~/[PMb%W`Yz9*cgvjF d0ף)TcqSt`\^fl6łwGGPe'4C`Fik64ܤ3]c(9RS=j`<\L9jRתES*b**r`ѥ1}~憔^=+h>`?gszw o{?Mf8G4 >^q0s6'[7":ZjG9jϝbC7 d&F<[3X&Q6:]1'0VrYMI)M6aA4fkK-AdkAS5&cd07-єfpՃ1i5us IX^lvi$( `%yEвb\%YVb;۴V1)H@1}M_0 oCSK\U-b|=yoyQ !,TV ʵ)mIG8*"bXʻAA}($TQcUR4ŠM.ð$52_%Z慍QCgwau2Ъ&#oFO%uDJ3zC'BeNjjk) U%6eQna:> ~쇾\r$8+5e{ g((fa](^;M `(ah'@L]QMvۇYғomA%Y>+{[ o&[2 =۵K9 NQrU-N2IZ+` (5Dj€[iFϤP)4\pYѨM,_?gGǟa(KqUǹje3JLM0i@~4cw4ŔZXJM9!Qַ`mx|.f,Aa3zmHG:BU֞ -OGcs 2sOyQ2hF\%r{]ϥt5!u`BXL=~N~ʳD~ٿί.LF4ɀ `ChQy>U ccHPeP\\aLIgh3%ZMnڍܨ> /Q<]T'fGQ)Wpzșʃnv&w+Dm jq-MMLb)1.Np5!E?M2Ԯ?rLF.qsUM€ 7d͚hVmUTHkGE~ǐNALVGwgR[U;om6fjӪb3<~t7j_ jV8d8'P@8ǟ.- Udg8f  j/ʊ QymV֭ qT LUT-v[S8<9X]BDXE? =;i8G#hur4Y.Pzn![ jh*m|/xf9a3wy,̴rQ"^~%_@\x^ (x֕foi{|-.ݹqȚ%bGK`lE*-j=/fQwM^V駴gb1j2 ُo&?ah#ZAF8a`6{򟵰K87s=Oht˚ݔir7|A #(݈V(-j?Qw:x.ׄޯhq)]//ߜ 뜝H\cÍ K& k DʴuW@joWjPаU<Z $c"㣓}|t|zӂKTcC/̈?P杆.tlq!UVDÈTn4}1`΃{1T[(JX|kcYWn󲉪ZnoӠRfNc#o*vϫ#v_Y xC{}XqôI~}lH1Br#:;ܑ@58o Rfitc3 ܩD4(<<.@f'5$a[PA)I1QҾnE+D5ʑP6[Ɵz^+{<;}ѺԜ7g/'ǧgGg''gfvMj*t *9 U%3O~R"R.|׋KWjjo)ΐ3zi)v`5qNc jxy߾0<8b`e9`ẀFA7ԁRa{-1!!ӞH[|OғTu$m% 2[q^im6W}1~K "L D7dsEd>RJsR5kbޮ܋ƩM ޳Û1:WU\UiJ'*Mٶn^NeJ_~SAe&Єg&P*.$<BqDnd*皇5/oSK[LSkEYb -o5%IqAM5Ջ!Ox8[>5M<ppa)U]F/Z?^$>,Y5!;H^_!]U?b( s愰8b&сniuhi y&f8as\2z( Gh4 u*hr\z\labxx hܛ^lпU\xzǧPjp!fițNj 8?A0OnE/9&ndŀ~/D]H05d/JjLoK0yA%3hѹEQOp.=^drYu50:sFK9$m\;O-y/SJ,f/Z]𝓣[p}mgrɢ1[~`+ƨT:_i65I s^ #'_dFOQENr4P1*zO_?g/':\"`R*K-ٕVF +&e I EnOhe.%ZfT-y[ǷRŮ uOar:"_y(g(ޠ:;PM3O$M`d/ \4bhqP=Ykj؅YĹ &TmwMK XZî mIrt.Wmߓ>$|pᙖ(0~߀*PZ٨H!!u=,rUKn)U:w(?~)O=Z5&J9`?Q52Yt"K|7Q[J[Ӫ|.T)Ʊ~kLE`ѻl}<8ě0O  Uҙ , 7HrFSXLSO`m]E"K7pq(TzS[ԗ:Ӻ~ V7dX_lLW{ב-UH}R';6@8s{62ԕl)Nbq>F^AkD9GF76J1A0V `]ah݉_ܓf/_ǛWLK28qZtܕwPMuLưoV#]Z/8S3U<\E=MfQ2Xʖ~.=vF\`;K|W96qSv.V؜+ &n@D+YyEiRf)͌gF߾.)<1Dj ~DPJk^a] uڳ(X.~53FVlQ_YD+*BL&=#45/ʨ4U*k Mި yl$TyEH00b]ȓjXs h@3!W䋕71&aQţ] <"U΀\!l8WxO3hgAPɤՋ ?~йŕ~bՅW&6*]ĦZ# uk;2uFh 7;mOLbGBӎۓ*R4W]*kv3|M,f(LQu* VNt&p2ѧ-mIIwgNɑkj#QS7qd34֐u26ToAM6J&O_O?Y"QѓSt. rqێ f-=4jJiO@۪R,YIz &KH4Z z(*Y7&#u@PEG`aph9:\`vC7XZ7*a %k1̚Trh ۑi-&ݒ} n:&!0MAQWEęЂEwYOw8xZ5i BieED[&5!o@˕Vq/%TI4Т/j Ev {ݥ" F1l!͟~kcoGqt=6][nOfYN`#qgia2upmsBFKXDf?@Zʢp!TeB?ኣw_;1 eBo:qP tx?cqy?oZz>R֌JPnvI{uSdOC/l5l݌8v&iyh6^TY!y|V(&9 FEE1")̝ {/Id|yxZYVN;uԴZ֬d$NQ , Xc.F:;h8Z;o_$'( ߩt ?kY-=xlTtee86.:g_/:IgתdqF-S1m}GW өڔnur`v Q)S˫ o*ϯ:xlUikqeWu3[dzpjz9Ij͘RHÃʏ耣NIΑA@mk'Hjzh ҧ#NDw"2`?xak: 2r,ٕؔy3İivOD?hrup-?A q[8W&AT:r[UHr#byٿD129.gXzCWi,S򈳽ƚL@>!1piS( tՇ4YRYzo MP OY2fQC8q`,ܬєf?TX &EUb+w䭕R24ʼOskc>9r|xbjּqx6W(w&JVF+ƘX iM˪_kK rt.nnzQ4 Tk9:y|j.풝al ug-YLol]F}!P#6Qk$ƩTZc1rv'?OKc>MϴA&۽dгT=O@xQ3$Jk;l)5کdW5MtrW(`cA!2Y7oA= L{x E .Fy8~,a'СwGQh+Su/鏙ދd ޫ)]E?d\`\` hB}bM.$@ -ܭAcgוήcc ^5+DwZEU*ǛQV{5hD<ƕ Wr3*B^,@6B*?W[%mŘ".j/-zS})Mfպ%5jc+R«Y%guF2Hs KF#6m"hqCAOzM]?Eq )sZѽ~>.81F1Ɋ kՂ .{NneO*dW';3ǒV*tAY!qU rfblO e?dM5%PtM_çchTT ^ W9jl$&z'ލgtǃs zb<+ X~ Sʮ\MsdhwZZ3- ,V{Zq*̤HbF3jI!m$f-COȌ)}ٛS?n;`dnlA +`j7bsl2aeTP QEF&tS=W_`,4E&%pw)$?UbP8W2dK7v%g~[OfFey{f}Jr=ݼT1y (W5+Zս8C΃OVlSAԷidAx|eIg]RbLJt!xluZo-ewfK0vlsIٕ{%~JqI^#uM^=;5/Wj̅=e8UGF/)E8H;X`ڑ陫Ǚ% -;(:kP4}q󉐘1hz f|<ܕ bFA/d4C\ka v88ԓbUȰ퉳k,B5[YG{KbseK?y%"NAܧ! )H|!:[uH6 U6H͹YxA.Juሦ(6]+6艠)jv#~RR Ү "G ,J"q_U%KqxYErKq65lɬ3ŸI6FhxD%Us Q<`\saJb_LNW3-4UlB( ͖宭7]|.y2-jLaI ~Lm]^FnM:1dsrB$,"L[Li~oWIN!'ASNC 9]]{S,Gi֛?Я&+4abxXJ;K8^𹅊HLx`c-%py2G2}奍AMpdp<h&`DJt!ܽU\vrO{1_4<`j-CVyp$.Ty k322nڅ;LSꙥQ.%7fגR2ڞh=fUy+'Ͱ4KupGdp $XYu\QP)xPQZdkmoy-D?fxor~ݙO MSQ1q @ -p$m!7ƚi1'AE2^K j]P:S-CEmw_mPZFX4꛷ב,pԘlM/b/:v&%̱fMPl2D$ȍ[p' @ Ay94 *BmKA:18ӈMJwcpH]P yk%pN%U̵)3yeڼɿ "5͇>`t 2{ ] 1K S(!El<V9ƁB\~>$:o"}/Xg1p(.Sl6SG33V}@nJRqLʹgN:F0u- T6>)2 Ӫ ->k>sdLWeze>|j ,-9n<%$߂3}~!'"خL?gIO۶(c׭S}G03D9\-QXsOg e}6ڧsI[<8 JCDR7s4H/ƊML`"T޻,)\ 蟮WmاE \^Ku(-a?AƞV\h6fWvhhu4aM* _|dUok%lO^ t^ E"\ 6/{4<&ZBr@kL(1ЈߙrX1]`R6-2>*L%`4L򌋴Z[,ŧ "ɛf5-^#vdjt,u/Ia T=&-EE47<ƺ :XQtB#@ >fMfQ { M\G>/3%4=L9~.aynaF9'\U"ۉV*e 05E0G1 rʁ}S(+%t*a'iɯx%CܔWL3֛՘f1q%v91<6.fnѦd%|Ԧ,/2kD|TdD.c*׹\G6j#_4<2hT3! aCلs_Ѝ40EHx$6HTU^5(GA#iW4$oI{zm56`9FΧA9%?I_8?80m9:j00qKũŠ) hc:>dM#1hџ:gmU8wOA?Z8TX<a'DV4Fo«7!;ݒFȤfdbY1lmnL@ ?߷e]Fi\FcTa7@}O:/_u^\9Oywr/)rul#ڎg/,綪,$Y{8f=wLjk8AxxVĉVnXE|`$'9ogE=im}=::<>Ϗ'PBK@ U6Q@q w*rIPd&3ye2-]XP&mîtJDΓ ~#aAZ1ԫ$#nī~IAwAvg)ߌQKKAKF2\1Wwy77AV.">cY2LU^;lN`J!OY?yt8m5NeCn'1M[qg֩ '|imnv0xN)4kaxDS4c^qPE͑?\c6XUԸ`̩WHuAqܧCJWV4q jlKԊEjyShq$+NcnAƏ.tUݮwV֑}'E ڍ)c69 &ht}MS 3^ҡץ=&l.Tt|` e2 kLXa atݣ\_k}o@EV(#ctRG:|fY뒳Jt#yGһ2n]H[qU' ЧC΁x5+9 >VdeZ2Mq X_j kc$E/< ׳ə(x@+cEn]Qr'[g yB Vgh14<9>V/TV9%vZ Z9?9YcMno[wxۜ>ֶJ>8 |laT /q$ |ϚZTzu㝹qٕ\p =UUrb8Mi>WH8Hc! rf/dB+Ktz`t]4k%Y+zm<˻Q/Ot*GZ'i:Nץd4nG ˋou򢂮7躊M{Μ2_=)UpD#^!ඉ3Eok2H\v^1SO]Zr^@oM}vitinFѝ*\;ˠΈni)P"Nנ*?n a_c吂#oq)u%\Ӽ@fMrcrd\nJkܑ(ŧW-N[6,yU'h } wD}#]1 f M5&bC&dI0Ӣ=h3u5ۼ?L `eDH)S*Ũ׋D]@L Q^K@IdA75zcFkL.sN}Ċ82e!^(1(hD sيIA ;?ίWr+KR~vjZNTml#k5@xYr^?'R-*n ڒ !lr|A32|S lրWYl0 :=Mt81k)hzPvi>VkO㘨p8Vo(2բ!oX٤x>bJbGA>Kgogpft%y5d2ԣ-A@V^KZٕ?c)Z~TX`,.+X-qi Ώ;à}qY0q5tY^d3FS8jTD9| mF +%DEg+H:g6Cy{ՕB+:`'&t*hu)7S0 fp,鲚:VL2UY̧d#˪@\>D{.ār7Z F#}zmQ_x A1 \;g4tLh4_4~sLָ?LGQ=˜+ 9 rۖʰ­ӄ}d\aYn,K5@Y @YÒ-ތ}/gcy"Uuϭbݑ,&JdRtDQӦȗ_^VZ9O4-<"bp:*m3%}q>W[a'Zm v3_k{tKv{xvqi/ρë/2~(NC)9>9/~u~޹ vƥ].q Z4Xk(cHZ fo̔.97%1J{ؕ)82Ȣw}-|P Vq3fJXhjq"%c(<)$ |_%4ODF$@L0̤n֤?[uLu+/4r|9:>??]ҹ 2yr`#a###|VV>0<8gJΐL79`JS~GK?۟6,Q >RD[fB0<~M pʹ'_ ,,Q I,+u(D/kFIsuri1;em LH6'Ƙ,^|;Cj%if[123R`zH:k&L'N-Np~6jE;k>x[_hH_$L4 ~Oű>'Q4Yـ* X~&fL^RIf&OtUiLvVmNQV HSz*>$Zų~tNw[ŦP)9 ,TթsT)TpaXBt'H"ABG)Msv;Jg= AFvaMߗ|)u)"0l3=?ׯz܇&Pxz}7JT.>&9fL+ ԜRV[|1t48f,&%wU֭oGf$D8,UkZ|ejj4%dF(BՋ.Wk'jIĩiCk,lnA1DSXM FaI.*5ՆQ*4rw B|u_Ϗ6R^[;5m݅9;d22[GDI4$Gޚ /qr[+ҴN3XT(A͒yuJ\!cF*ExGirU%n \qт(ѹzqzY>kިifN*zNK h9ezsko"K&0^U@/.O?x'G'gU1rZ}+ T A/_H|yDz;~ -~S1Zi{kVb |:Q֭[f4QsmgO?Hʼn-ԓ)Ns!ZUGlÞHw!\mjJ-mԉK7_#GwT }F~ yϾ Ɉdڪjϊzk "@A`@"p^XRD`e=(L;װs~:wqa"RF NJځǬ՟ܽZgK&~?^sE-Q^w5Y3Wݟ%XpA?8Iry؉x+T8@j#JR|;9? Roz4,h>SMTS;@Υ,{D_;d.MgmL஢4kUXs.[tl8#rBv&qbL!8Ȇ[nC|BgCgP0vqLxJ("i2#v<dB,5 RG:YB ?OWyf!7{myOK$c*zS9hqW*vlA9sp/lx~*eѤEXLanJ.3$F$J+۫U~BeM 4LoYVPkdA2VjNL]_nD -B+4οzhФn=?G 2hQAMq|ck_櫇_U*g0wWF %3jKy+^lPrhE.:9d_VmVJItsrNdEH^f*v9e8#xhrXʨ Ui+5b9ƯYg;e[ x M\~=L=aU^,!T2,*+:'{}?yR]WXH'`~'BެJt[~jvN>W4}]hO_Z޿w_zfA AU?OY#ȩo:fSo{[X+uj д%㑁"TʬӴe@jfmEʋ>r_vg_Yf Y"AW?g;=󗣳dϨ qrrɊ)+pXn'kL.M ?QDReHȘ!x`sfplІHrF>uXn5d`nƪE$@C \Qy{;3uQH]I`ѰE> z#i_};?k2wU>&̚eCM9.R' CxGH]Cb+Lk0CO ՗ *,U^NQ-J~y{! krYZAUq.Uq&['qԕpFZ$뭀t[QW`3N\W<7ș"M쾕l#_8c5)QBGݫːSܓ@{Sl#<"QIdL:=Jۥܓ}& Ge)}02=gAY̤\ e6)5NTG;\2XZ‰/g_O:L)]MUn/>0qh7+7D*0c7qxQn)-y~u3]Z dIJ` {&ܹoQq@='ƷfHJ) BTj7⒍5uF?r-[qHFL@}a`"o7fU`ƨ4K<Ko- Z }.)PD1cfLW ^f |79hU qÆt V??xq?ek uqkm3 vZ,,- @<_ h|&]$E\omX%/$C^r{o߽|uxs*.!WƖBSI."X>L(x~z1^(@TdB47{L[եx1v>䂳nydbSC,8}~Fz@٠$]ccÞy~Bwѭ_rom S]TRE fM~mhje|Pj KRF[Tr͛Gs.2_FVzmrآ|A(j^Ń4:ع-<Yo~S/M )qf!w%IUx+d-vo)mQ 6g *6c͏u%;GLȋQYmd& :=ݼqZ`wTCJ 7\ʷɡtT$Ys 7MLn59ZᩗԌ=eDR5FޫP_i{7[/A >I\jY|JemHq7.L"Q0 SʜUӥw ]Zk%ڽd)EaJ8 N 1zcVW7ÁhWZs;o^BZ͇QYէ1b~cRu5~2[qSÉ!c9rBr*Vd~?M|)n#O{\ .愇4!Nӎ,CNXNf|7Ezw2-mp qþ!.OwL>Lo{*|F dӉjx>f[L. ݥyS7_: [j;=[; $[jlԴh^Ax59 A7! ^fcjo%EJ2\W//οڹ]Fա,!@gVoSUU'xƩ. cc:(X`YJԸyg"޼_PMr6 uښ%=Y }lks'sE??铛{Cbok'?T{+2C6£JcQF9yN)htPRPC⥺^.J*>I|ȪλSWv(s_#yMrPW;'"j~X\s6;a3hE176q8fϵ4j0Wm.v&G4-L6 c.;_:iVہ~\Zgw^ 9gWG'yfFv޾.-^N)xսB:Ah",mn,w[.Ym/k\?>dG DJ9}z;3oI+]ޗnFAus]37LiD%䅹"4ʤ4qam31k{T~C7at1͑=4sqgw_|9OtkK @`)4%gv=.$C|=EZ:z[Gx{ca~5s\ 3 SpςjX|a{Yic, #@%o_ ^yBfY#(?*K }uR wp|st $=> sxt_?^||ʁɧ]vp1R@R|3ї+5_"*1= l=<)\%['mpS-8ĥvctۂEOT[-3_(5kh2ak쀓qP֫{w@L!VջU8}|DIO4=\=FhVCWR]+DAEɌ ج^ B/I`=BPɾ!_}恵XB 5]uz0%M&ctMTV7FM݄ [ɼ'Oj̽~fv޽zq k>Iuٶ˧ff1C?9_~" X]#,sGYc:S4t1Q@^s~T 2ȯ\X[Euߝ[Ay(oφz]1A4k]I*Oaћ^NS*2_)4j.,c-WWsyuv1l.܌q6gtzDGM`HQWe6 ΚaŤ尠4Qf2?5-r'ۛS(<>?[Gݻn%iu,jRڶdgUM€H"JbNϟ^N|76)R@fuVJK;v\!'w}.~a|C&0c$ʟ-\k_Ø&JR~7V@\m)[KXw~lދZ,_x$5nR|nE/jh^m3'"<=f3!">wy#| s?-?ZsH-mOyS՞awO5s Ģ7$VMy8-E^S]+^nʍQ I1-P6B9w fNf03XYRE:=YYylu7<2Py apߦeo}k~<\#sbJlSZ>ha2%;D:@Btzw{>I6^[,Hvac9?N(L+_8g僛Ii4~w0c㠓s^:Ofێ,EG豐9ɩQ_:McA1 "ɔ"VG_${:QEK֍2@sRS!2\,bү[شÒG@ |`xGh/>l]gA63I6U hp!ɖSOffKy ihG}l8PWJ\cnj}$g_^rӢZ;EЬ40s"2~(5KIZ)ޒ׃Ӱp!;9PPlJ ׅR졝>]C} -tbRg[J@4/ _h->Ǿ#Wl^X-0 %8 NO[(usJCֻʙwv ʲ+W fգ+l9\9QQ]꣧8gғ=4) յ[0ߍXj>!LVϡ1C`3fFU5҄?R-H$ }D򣶫Ј\v}q*PK@ԼݬSjV0s X[;&R~Ru Lo33COŪTHo#^H!#-vPcڊ|/ !岎0/҇vNj[Ql9T=ES:#eBK=dCVF42i&l4̈\,Fsa+I,*stb7Ѽegw9u 746ׁɴ^E).hP 갗VI!VrC`(WsL^7DF?zͼo =:5F-UrcJΊȵ)M?}Ҡ58'8TҙA0 P=`"^o1QSïkY$= T\(a-I@)o>5CGp]!/gTe03[_N@٨))LܕHbrq"տ%{c3[8-Zs~T͑bJE6Mky*/"J ZԢ7Y/J" s\OKZ1dxMDJCL~삯ѱ}og XVrn jBx'i8 h`,Hf6qh$]ǫ K@9DsJͬ´ݨt>LVoϨHy5gd$n̾y-r}q^5!K<VP5&:%hYK:EM7'!kXHXVsMb?Eјݛl+83|'uP?f̽ATԹOgtp3bI, +ҫYdisfu[^k㈱]P앏t)slF#늿^nIeMAqrCw?Yc`૜pl3 z3m2Jy,=ZF]XС~Z3%Q4*d \6nc0 @13F5VVL =prr_\y6 ==2H#iFA+qmo !!b^mS$`%W(-"PG h`Qe,I/vyuwo=R,h>ն/=H sE<Ga"D`+6$ޒ"^J);SWa?:9WZ .Xl  ʬMRN&P4pv щ r5Lhx~O|}?Yw` #}AѠݺwZ %Ke N6*t}VBd U+MZmb?;|{P0d;Z)KpfvvqywdG;sQ\ޛ{$Ǣ")n[Zn~t5oLBQ;"ɤnfA{cioC&pSoFR4n4R 0Hk8ݑrFC͎z0f%HL| mウęE/*ȯhn*l7).F)hQL)Ehp$H>j7]uX7CF A^a-[p}"7O8  NTPu{l]=Cc VkX5.%a$0ŕ#{o5gY!y:7=B2|mfo|.(GϪ9HF^wOÔ"IkuOȗӇ{DQۗoXys;8r w{[sPO))ĺ@r~ 'H]`Ȃef񡉐aU{/h-; <8^9FKhں{6Gq@Tx19i#'VnTRy AX=w/C>V_vvOy]ԍh6-9\ʗ}V_]r{ڬ!g&>1 I [+N%aь!ݻEuEttJBLjR! ܏{~Ei3M/_^:(ȎF)|U) n ("eMFmĠLudCj) -Dnm-A"h,P017ҹCTH%I.+µ,pb)_ s@vCf8Z~Ƌm+?z⩖ɟ {1Y45M^kȍfi!-.=NmUog[. jޓ1Q؋l Gujݥ+OFNg `s=;3h:5+']@웮܇{{<:IY-e0fLnjjTM"ɞzkUp~c8 3ŋn 0NDR[ P1,&]#aЦfIxJ'O \k^xx:ȃ>4wI։n 8(r s r`c r`'vlLKhn@yv ?Z'Ej;U}M!+[LgX%k34_/|I8nuGenoqE"C7.di]Wj3 {/nio&ӏZ]B^xLN?XevrIa1E M }f2ʂ'=}MP|ņ֢Hd]a<۬aD`;#vb^ K..(fVu;mEKx=.Emfו:>Z7LXH[(irSr!F&nzEc_p5Hߎ/|о睊o`4 ȇfymòϩCInTXKa!s${=n=`gI(JYa!:i#¾0pu#eȽߣ,;w{u{d-@[uK5fWʮ+>_ #1',7Ү{!/J(eSSԻ z)QWK{{n%p%Y2BKO 0xdL;ߙ_d$@  09I(`ިo flM53_>oqN Y6A837 qfqOpr7o&w`,/bIc4WA_5z :]6dk1f8GtʀZu'%Y] ~VJk?7:+y#s@8P qg=fzY'̞lf`Aͥ4}pުCǒ{e/gUxI%=Er>3yrw$AJ0OXf3ăh;cI!-qsf ’Bd&\] ә4ѶkFkhg`CRoMWD] xYZFEYw'yųד'|*Z wpwݮ.!GhX=3H EaAXR)QyV~y^C|4; oT';3Hw ]0ƙ&Yi{;; h|\]*zw"ߞܜ]]mGGo'}0$VHm(l'}N꟞MI{stt^YR6q221˱xhz6y!035w.g^O$v,cs8$RPn2HGcNd@y?-Mv Ze7@N&{=UR3e;ll/GX GogmI_L|:,KvfJ=P}\!ʗA~{!eN\_}qeʼnI}ljxSҴMs&i cuvSom`YU :c NE8O:]:)ս4kCe'Q/Z,qҧB=&\|3'ҏ=@97f^ qAYV[دjVHgռKO-*/0ZL9w<(2XTP>XCsZ農+lN>ĹcciQg9g.Y}@fAzC%FaEcpã%&uul̑~`~}3dݻ}c[ւ÷BH$Ϋ,oS?i/qvVѝ'9jn.\aDވyZ񜲼xc.'A Mp\њYRiK՚~G>xHYTGz{wdGt.: yuu/>0`{ca$'(v.5ND'i'd& a*ؐv4>bD2Ō/ >hy+Ԣa995 S|O(L\Rpn2ң]ߵY mbL[Ƌ^+Xo9reSs "YBuw;Q]Y+@*0JŠ)JbJϟyN#FȠW!bUzrqlQZwE7ln<0o zˋ8jif$;TA%\XW|{7RlG!bvn{}&gK8yCpfFv/tx\0 #d ?saƥ//٪mzyWnF?;i=fzb]fc_<>v¿`st¢5Y@Utpu`K'`2$DPwZf-n5a4!/_o6d  rrK>gEdI Ji)QlCL:Q6ckcV\!ow\Vi #8owv!DRx.} e?_Y^ͣ)tJdv谤P\Imr'qwݮ#\-}iAVlqQZJ ]H>E],n螠PPzd8l<}>_i5HNfS2ǃ^!Xo[H4@ӵM>4c;g-i~qNFޙdS\tyP\Nj,F YtNU-o M[q2XYlϏjc᰼u i C3X.]Urptn@#4ۦ]zi<ݧ{AWkީcN-0/.Z|cRz<{2ӚtL}8M씮rgO0EQ;;yKl?دZmGp^Uno@(v3H*ވbpz8!gyW4+ziFTg>bp`2M=oZ$gT򄡳Q?\<> Wi%L(Ƨi2&"vw験RdkMX#ŒCj';ʔ[iZ]a3wrJIIJeiB'髁<.w&vfuy~.M,{tnymhwݶӿ\vb>1#KXo@oXݼQ+lnb iÕoYOZ+~/lL3`L[@P10d*ցʁͼP9 3{<0c%\|3t= ҧPF@&&^溢m%1"Y]NHR+C.;S~ oD:W/r(ݞ{΄)#}!hxDb%1D8A:rP|^#sMs]IHA8wZv L7bʨ6K$6|g+ufY!v3'~ZyR4q1NlqHiL:D>1~)}wHIR*6diX,z˄m[ImGuLr3CR6SYc9qU+>ffJI *V]ö`b8$rXίrv޺ f6fHԓ9{Z\KU2ٌ53I,s5(,^.44VXݽ{n@BbZCNBN_Ovzʢa' OtWݑzFtegѫ•^5ne7^W*\X+M|q:H;ik|gpX`X7Av##`LΎ羖UR(LWeVxXKK-rgxtd +7dXtn˳;'şaZ~E`jb>AW i$f=arƿeW> ĜRՐ!\Y*.дN흅9T22Y i RwV;3fy0B3^X#sˎ?ZaP0xeDz;m2Z!oEOER0hOيMPlsfȉ{\/j.irgK\,eRТqAiI~ttێu+t:b߄+iֹWl>__A ׶+!k$34]̎ʥjLJ}mڽ~3=0[i$٨Y 5 j)o7VYa܍ f:'!aNOEڧQ[€[L 4l gA;qgX.hzF#*H.`@FOG+ϠVnvo7xum\: -U/R?O{L!ZOioC"~/4H T<_S$| vjʙY=Jؾs[g0Eoe1YB6;nʀy-+)t_.J]js[r+ٸ[z&Q7G<*t~1w[4:2_&MP{[;)dA.J@Mqe=_qV R'9) $s/x-g?-!i,ePO E#'Y&9eߥ |%uW/#.qЗϣ_wtBO}a5_?nj:'H$@Fe?!CT3n$ 8_<QR<}ؤ:.7$~ʦbC$LAMRvue>VL ڥ/'lORی=4^4A^28`ߓzt4? ǹ>' l: 3p-{3Eu&Zvź.O;a5͠I{F*o!5n7 W6z9A .$)XĀ{͙'H'&; J~l◯wF!N_Wr~yÆ@b_.:>Aw[^`\ӒAڌ舙`IVuEx)*ǮHSOBAD:NHӿ?om\ Y'77} =~Jҳ!-yZ=glqW1[,i/ x_$БI=NCFK3ǰ L݁A k;+rʱ&7k4Y~"5vg5:9uڴIfVpX(ӽ#.J _) ~0iaD)>{)#9 # y;6)7j! {sgU8ZV\X b!LӆJE"o멹0Ī- IMl.y  ?+GKjq݋kBW|*󛳳_..O9kRȑ@<ہsv|q砎C_\|o lShIgQ#Wy\:EP\LH̔o5s<2#57(h>LG3LHmeǃEL3NB[u OXE>EtNc0ӷ1an'IJ2 Q]ӼM%bx_gw/kv9߼t1x62US#8S˟|d<"%&O=ӫ!%sM]p^eqns.ӈ LM-Cy5:il]?T㺜F!X~E`H͇شb:o6|@BP,LJkufg~G }G0\[# Lg4pJ•|SJ+Gl%C] @lI`CHeh1X ^6ާ͒ I\Fk汎 vZHa{w`{QhIYE5iX b ?WeIs1ޣ1I1匣e9Ozg0vj*ZW|Ҵ]Y)۽1mr&dզ]^l:o 1 |?+czL7 f ;'{9=Lƍ=֤umbV% p#!o006Օ͜Zq;%OGѵ'yI{,Q҆.Y5PL6-Bf'Rl)c~ "[o`k{)FGw~uQO gx :.+;'kЦA};z?HtQ2{n"TI ~G!kaa׬Kq=^9~xvkY١V=-\*␎cſ(lXTՍ9I@$1 :HF(pL@b"vz1J:f4^]6 5ӛ[w$'[ū8bee$βI\T4qϧ9, GYd3R;,(ɴHmv heaqqrf#+5OI8:1XC1?LYLUͮUEZruU(˾uqꆌL&)L֌Ww$HCG%<};ݮ ZQ;7i%G/Ol3[C?>* խ1 k݃}-a zEI)C5->sr͞3Ǐ=Lܪb^s{aB/UByDRϲM`XR*yYcx: 6>3B[d[(ŲIsZѨFn[$ԙCojQE:Voroܡޞl4vv}vdg:-{+mbN 3C\Eye- ?|h=l\Y<\/,zg*5jҡjp ?|u׳_ dF&L gN&`0؏9ǫSӉO|0i"Jx~.Ŵ꧹w I\̿Sދ޴mAcyG Y(vT-3aD4(Ġ,x K~4)nF& U1fYE27.+Y,\v×nt3t~U3IWm՞L9P>_5|9jB¾i4!& $_O?7_/.7󍓇^֛C_\nnEŰMӳ[<3 ).<oFYhN?$}Dhn7sC𪆟4Ub`Ofs+w&o 1fT̺zQH X nPaۈ0O[CB ݵ_u{ZJ~[_:cʔcP- YFAݾOPSVH%y9̣n.fEx뛳jcpGd4/Z~ ՟c[笅cZ ޯ\&plM4ͤjvfǶyԦ#pxw{w=Ocfڰbjeb` d(ݷTl8nc1I?*#PT)]s-C e0 cY,1hHΞxHaVfAH=H% &"bD[LY1v&%yjjI l DZM{VfTszI #?ᡡ}I3x3Dן/H[=?^h~|-<'I*mW!}Js*ͬ8eqP`ˍ$> r94tZZ-\M SC0YN'VD#9i8L 49ޝ,pqE K )0:=q$_ :וswp 0o)Z %Cz0Bqȩ>Ԗ n璁ʦTgt9l4j¡7aF__42Pf;[gk&*kbyԏ3@] &.wx@_]ݖP-E4"V0S]^ϦY{ƗW͝wr+krBp}6tB/]AQ:)];:5wU~ַtAS:S{+a-MqW9^R$ŪdLrSD\Ps"-T% ĩ4keȺt{sؚmDO`S" H17:q"n9 l&.N~.G. ]E1/I^c9$&YD_D0Zg76I12qx3O/lW?#~BK۪ɵ|Tv1$ɜT#RUξ~HZD) o"e-dNos"m7>uL5\ U^dݾHc< &+JM*h$8-l63*o,]Ta0dpRUb'p] =3e6C^^PʀdZʱ^)+DN;;QB$o<XS~V,ӏ>W1plC =QgoJYilq1mK?<"ըp*f&Ռ݈G id]}-YtɊJ\Td /#OYAlLPեleRצh\Wsr,S)Pθ!3pËcqOG[ԂB]&]0O]XkU"u0pm3 mZJAVsgug,,dyy% ދUZ=3 +[I1ʼnMݥ} +ͱsA')nXuiU;l܎p\};\}c&7W_ DRWdU0l WyG rE9n/~(u-%7;.V tm?* U^[q>o,P]-S!Kjq+4e}`%+4 CKڒ~8_x4d|ƙ %Z5P->㵮1~i__ cm+U: A;SEGQh#V}Ĺo[b!\PID le(ffH1-uTTzvs=.NG yZ~=K j ŜplЏ) =[[c>Cyft9Bͦ'##%:[ᔍg[jNNkW<^F3;K ! un,xNJk}9/]Qʢ=˂˯w'@A)A`}o5_l%!f ӄQ (OzP y2ZX! E{ҥ )ڂmi&͙? HsnM(\-K~a .T ~i2₴{ ['y44ao|/8&l^/dw: K=TϡE|F\*\XJ˱"S5[L*I84J_Ai(H(s%k2|M@ VJSň_҃ƥ*nOµF'~Dz`$0[/[)()&* ^WeKoc/=q0CjW,)#h[5 bR%J9*0}*%=Zh tfeQ\0B ߘb& |X~ub Y>ToR6go,fSaLFDL~\7LLo5S0)Ԃ\tiuL2e-h&OL 9#]fכS.D,O>nq,ߏY2ӘSĦwfYKl̛[&Lpf&_>Y O9cuVCle Kx8wy%"_g m؝Y\ ,IwڼtRfЭ3O-%4)mk-05nϨ&-Qd\\8MOMx ˎ''n%C' cff .63:C[Y?Ugö-tA"R~{PEF&d^)J5h2ȥ:5I"cb+tr-UeP{k:<@֯u+Y^)֙\]uzęo(71F\} jr,y- E#2 l|􃟋4i0ˎ^ƫ}8L9$Z5.Mq{@+3+'NdIgx: ^j:zrTdI$D!J H7 J9Z~0oTې[*튵p1f:[$}6qm1Ҽ'l7u)?s0(t'4XjIc cbhu[paV.+րG *  ñގQ.HE< |!v}pʼ>xO9`R zJʌRKK6JNh̴K;dX kb\lχb"c ҰuyƘ"1Q ҙlpF5jp.ݝ\g© AܺÁǤ$ FS=%T!#ڒTwG˫˻Ӵ|/ֵOV>ƭ~jq\}WF) W瀜34_S{r`=\<>=iUp~7_ޙoC 4 ttCaßèC͊FI|ղh] Y&*F צSX\ d.YWIHҖ)X) 7ln﬚m|51ԏˠ<*֙&5 .a~|Ez:gʱp239JK;H& ktXr]hc?e:skVqy/x'1~^%?/FU'݃.ЍTgN}G7M(GNrJiW.K:̢\ @zy룺,y(YA].!y bMN5yQDIv J{o0I Yn 2d G撪yvŚh#F#JHW(L-]ƄYs6IJePF'֙s|{W"T2R;+יzW~zK{[Tbsid&WA{^MmT-EO(BHKA+յ*{: _itKn#dۜˀ17]#[ߛ9'C#ۖ=sd$8[jԿPK'o2F(h0[6嫲0Ra 7??o~>1Xs UY`,\w{e"{<'8sW?5ȓ jUQ7*|#36QA [^/pӆ}ƴX/<ćSYMƾ@RQ=6&C|eʥ2_2iƛdq.^v̴F:1^ҩסg%z/ WVB XVCƒbDž6(W&9W!zn↓4k54)E*gcu,w˓'~ib#3/C[Xqbh0rj;ΖL<\!qE^5BV>'sHa]_ ̄ Jjf۞p2GؽA]q!34K-k a}7´Sdv5Uwha}[Cd2!M%-\s`6-5 QN!W͸M|KGl/tO4HC>O$gYxpP"zы/ڳ'۲]:-U*XggZ,$g n ;z#Kf]6[?܁)t։>w5zѺAn1 \H~]s rkee4 lp\Fx;69RT :Dֻn\qՍ1bңYJ:( :aQq|dQ?bޭ$>~ar҅ nQ@t\Aݱr $x03T4poxf\uスJك3t%!K-Cw.'U^iQ깛Hn3!1E;;b!SctF#d!Os% &}>tG[Iܦb>oIN/`M PM'6kF-{ 7j?dB'|p33_6`f햨kù2齾vw Th% |?ww9ҴIC\o*F^O 7!9Gw䵲^I^5טWu`iGpNs@D6X~Ϟ[PMb#WM,|L׳y;0Oj5# Ab2Q鈔JU21ٸ!fIe>bbw)2A0#$5$>:쩩s5YL0ZyxPSZ:ԵrQg$ miih0RB otSahsCJ dj>`?Wsyoc",jp_ߗ@C8oGEy2i/T\֞ĸsՋS7ʆrgP.hB (񩓙wd}t&fJ!M~6A4fiSz% "ד5qK 1"Jplup&hH3H8Ҙ9$@GGJ:;pGȴT `%yEe\G!(Kjr`gҳa!b +@1-/`4'ޖ=UpQj8'+}٠ݴ d>I2 SmZq<},5d+禴%x# Ui ,![ 5䇢yL"j\U,b&0,I Wj롖uae[X)ݱ.z;GQC* 0te!<ꬫvp3-PYDG,M Mǒ^#Nb))QN8EB1 { B:tIfR&?eBj+>dL8t}a$ [-z=!pAQy[ZC 3]&"ӀKB86q~ [r kOQ46-:n8k! [!ɎU8[:%Ht_A:K6G^:K>ҧx_zbti7PJlk橙֜No R-E.uCc+0܍Du[{cS)Wq5cJ"bVU%bϹP"-n %Հ.uWKUuW;`|$ |Om.O'q r]C-NFL^Nznwz gR`usг]r)'qvrрTރ)J^cH& /J ѫ0`V:/F3Ioݭ]F 5Q 6\{4jG#eI`7Vbq cZȵM2'DKlBT[0DmŋxK35Pa6l΄P&e֦BXocm|lԶ 9(_콭ORsOM}g0!,S=~Ng*Ϻ8x(~u}wD:6ji TTdB:Rw퍊1> j *sWS-LfBF n"i/AY'ϝInk|mD乛N4qERpt**jƈC$O|d QTb"SyRv1s њW TES9m k"͊99a'ˑ;<fZ(^~%_@\x^t(x+[^LkIP1ȚbiٌUZT{^L:f[rT>kҝ$d3061EZo\+|=|͢V5̆<^v>O_XK9tw:en4қsp {p ʤJE7 0@joaԙ kS:{HLcd%zAHq"e:kb:U4S[^iTO~AI1֚ЏmueukjwzK6V7n s*G&9{fmT&[ ̘KG@ ns؃6JJMkR6gSQŲqH1("ڸgq>U$Ծg Fՠa%6䒛y%!-]>/~//.O:gU;0X :39%yx7z8<-D骝QgyAl<(nʈY%krٺgQKj97F91{妱.Ȫ6 *Ekf:UpYeY{y5rDQX+S1[v7U7L;yʑo;/qTX 3-$c0" 7)xurqS [C41T"u 3 QI d7ǤEf#ToPx`LiO f7"ʑP 6=S}L0h,ۿ}|qɿ:7]iEd#hNA`낀Z JFrU 듟Hٿw>㻯7gɯg'ة>;Ctmu؀y >}ax(pĨ@³Ϧsf] NZRJG~tGL{ m}?J%8<ؒ"K@B^im6W1~K#L D7dsEd1RJuRUXk尶1oWEԦQ@H W Ưa͘:WU\4 "!DOG7gt .-Q) ?Tjm0R't@(|֍,^te7帴E5%]K(V;)VXb[DM} BPӬMuzH}0ցOM38c$8\h;u)=Gc kM7I`j6Jf#d۠8g< E$9gN3,k2ۭVDvSȫx1NK Kq"!Q2: јyT .z+ |4kש=V">xP:邽d{O-X?ČA#D,W^ B JPZd{uJ6Qw<}Aҙ{UbO3-ÉPHb%o2vJUk, =Ȭ}}2H,se}(BZQ |͟yD}3Weڡ[C/URK2ֹ3üutڨ֧K8eqtDchRl\\V1P9%.vP-q/Jf{]U|ޗdEC+c"Y&WQ)1t6g;Ӝm5I #2SOQE*/_?WǗnꔜۖqQ+C:jR@" b[Fz10N9Q!14jَVjlIULKی-eM񭔱kpj] !L8PWu7J97hZȁEȏd&Lh02A}JS1ePʳ԰ {ѳcLJu}7-Y3D`}k&t% h˙F/\08'$l%XOpᙎ(3~@U(&wQ{J "t;,U? ndi" */?ySqs8<Lynpf0c \ ,_ζFHc4CgwoRlkJ⪓PC_w ?ʓOi +Nܚ%5%aએ׊kD3sQQ=o?+99X-샕v- JaA\N7z-od$5}|:-1=;_M281Ztԑ=˦<&7KQk}KdWuIU8\E-M!M/66d#e+[s{X60,n>`nޅs Jm3u^Q.YR3Ʒ0}6<[#'F*LCC~ď` }CI|G0쵃<>nT;{tfӌ-k3D@?0xP5db\\g]',-KeTeV,k -ްx:6*HZ<$Ecgq]'UǪр0M}gbIp6- fLcxqL;i/hn"^Ձ ͆cpɷA ʄ7gm݃7A6z#RZ o|wvqywAJE#剺5`n8Y#4v'y&U\=|aǭ\eIǮ3{I>OvAu* T-hMraeR%9j'ߙ62#UK&֢G6o]yIg[CڽPaX'qF/-(*<'Wt/~zwqDVI=w hr hhBfUZ)B4 htKKT`s>FBɥYě\-ꂀIz0*Y'&#5@ P͘C=e,`q8u"셤n8!f%$\GHee֤ǽCcLhhB-)Yp'._1dJ)]ύj-Rf%΄,z 1ˆɐft2-_0횄2pZxq]<>r[}|s~J< [+E3֨^ÆJITArFCM=I81,2 M0N#%b<.~fZTVj ~>uҡ?>GZ>'`i ׌p}eNAn{fR%>9?8j8\֫HX5Mm-ɒJP2[*#&5m-zUx>Qwp@f@xQ\7B?0qxdԩLg7xJ ikqI4eE_lKj[x)*.b3.q;So38$]E?q`$J[{Z]e0Hè(O 9Pʤ6cg+ۖvX^9ܜ;svߜ}x(LƪPWuS/0Fܓ61"auna r0.yV(xL狭W,\H!bZb ~|>v|syqjz %G|2A:p"I8 YZYt?Uã`lكx5N߃qO~o|Pƴ،90~MYRdyg dwfx{גB6go T:/v(Oت0& |b~d}'ׯafNc!macF5/MO5*_%_0$紁(Ɛ('"DNMųQ4ԑ>Ep{- =Sϒc-uSM~f-6ehۊ\#cSeI,WTt r;qar-}r<mT\/䦤IÍ6ĸ|Q% '1w*2on%ȺKo#3a)HkI窰l?ŷ3U-n5ki<$DT(zϯnE:;hZ'{X$'( lԁ CZg:,ށj|t6*re8V_ߜ^}99?Jg2 v믷gٍ~svV)IʑC-',:xonH7ݜi J Tŗ+򫻞:qMAjyQq8e.J#\V^ߞyXHQeNRt$UDsj / *;A> 5cA{[=H=`)2H9el@oHAI(S(bUfW66#=Y-ml c>83nJ %B2˛Kܛ.7li虎ȪHe]KTehiIyoA"&@Jb֔X[Ws" Ʈ |ga`y4GF "(tOs KA_a1|:iynIEh6ي:sXhYx,dh\&PR9lBX׬M[p4VSmӏ]Q|BD@+ӫ)'0F1Y6b#Gů ;L~-mZl׵W!{uٙKZ4v1.'ei %cDUћYB:6GW ȡ\7U6~ S3&JuIE 2E#f%y: Su(M5v#!cNSY,%hү`Jѕ+ m,G @M"N[=pe6# 8dtA sRR2 _դpal@qꕡt#DƯI>F17'`f7\RKmdB'.6t7dsl4ҘHC=!M/2W6$S,ͻei)R)釛%MI|sZ\-EN!$)?q~/>]onnPzndLo/ 9CLpѧMgKɎJ/@NQүn3iZ>Xi|!dq,T,mn>$ۤ:I2Sylr K0 Aou9"@|}q^? qH^-vM@{D'knޭ" MIN:<4zqMlPxAuۏa{4u؎L\=(lŏx0ڃ-zsܿ|ƽC"NG'\b6gWZ`qcj>cW"G] Sz:F)Z+tUMʓbU퉣k4HϜgm/-E+$NAԣ! S(\Jij &g܃,֤CC6:'da%acJ;}npJpBT1 ZE:dGBNi4l|N΄~ W^ĪAaIT^#-TDgJf.ƒ|dԖ6&k=##x~fa QzAĠD_o%r[{enڋ~` q~GYHdeDݰ N%MYgF~T^>JLK ~8H1;oIoe ցS`bugUr3Q[]}W&h%oEF>P)+<ľ!a71ԧe-xD_{ hfLCG7)-oBKiF 8EׂbMfDVz!vVk/Aۥɼ5jݤtƧjnnjJ(--ghu9c.Q1( `[Jex+f*xǙp4b@x$PжHG]B<ݠ ifpf18S J !fإ.Y %qkqѝH❫'ЪI$"-p'.L@duh]1J C(㑀U{6^KVƎB<~@:@ ~! nrb|8WʊB9͓z<5ca b2c rSrwe*7d]D֞1I)Am T6,3|DKd*4L]U8+Zhf6g pa 8ޠriYOufZLzm ')1C$>2ՒXK'e{&u\ F"\@:/i,BySƋ|qPUO3ԪC3(F?" TlL*HMK&iiոHZODՍId!o''HBr~ !,X@sk:U *%o9Z5@v:&ğXjLCC4{I }F%Q2ܐ#ùqU'q% ok=p >pQNf cgƸ)!qV `\MŏRF +t'&0|$5QfDb^GZ8pzqޞA/8PX.=a#DN4o+7!_8GФ=hdQby1g3l|ߖlΚq%Q%?n> Cvyrŷ~9=?Awr/s~:6F柒-3ts\i̗29EQV @JS,jKDL7vwc|Ѹ!C" n3MVuxђ\KV7llOط+kSѽ\xIvigtx*1 sK|(׬mN}QaΥq6I6c9PbeeE,I;aOiy # go\o)'ݸ>,:HcȰmy7c㼻QLlHRS^:ɋ1WV\:<0Y\B+20EȉĩGPR\F!=CRmf,MiSYϘ k[V[$'8!f>)2 A 2B!{z ҒOZ Y@էJc`2QFjR flNyi_ Fwz &t3 Wx'W9(r ɟg!YjI$YU2ׄ YQFgFbq&jN։":'jmJ Cpf|fۦ)6f I\Q9f4bfhܚf+=_tĿ mR@2sJC=&8Uyp73!O-mZ`9=/[ \y\HØ[2I8fQeqi+klv]>Ɛy\ZZ$wmMS q23V¡W=*l?.P3@g S٧*֬}ݞl{ [wPߏLR%%5pv"d4H\~kQ뎣 o"ylwo̺R̀9*,ѧ3Oƫ]ͩw6{ 'ȯF:fY%;ߴOI?{9Τ{cOrOKKsEm]3籼-d G7hqSsSo_jr*ZސhIɺT2f1#=?9r|}05fMs,|0BZ)e ]8eMs&~PFѨ:nj&y9zN3 rG4ʇ+D]Uz_;&ћ`)Wz׌ NMuhvu a߯/a>5q3 zK q1Sb%dና.{VHەߩF!3ؔ頪a#`ָ AQW E5?9RLNRHijUoY9|Tn+}qZ|d!;֡s/r$9=jSt&SEcנwƞEqwdKb /Tyw37txBR!F OO' C<ɂjoAǾ(Hw أ7Ѭ|Zqzob.-ۋgp)WZ}xr{K?lǜ2Yqjiտxᘞ7M:h |ef^o宄s$P$3jjf&J5{ZT 45 u^;Uy}7[u,TՈ$T?9Gv >Qk<$AE AY|@Ɯ '+C ǥʾ?dc_ LB5I&to$F{ح+N[m,tYF l k@3aBV{&d4%M95ըC a(L ͰC$񼥀OI`3Jav,/fN'wI`PhDExˀN"obU}$ǼΘY\ƜPqdy5DtQbQi7e+ZyMps~<)eqӿz:-^lS~9a8:#8D`nqM]vغPPH vi (,*kFiDURknUc(|pE8d•èsBtʚ $3ЭMG脃q_, c;F!QůTÁVhT*;[b75l`~i+ /t5̐ IOzOZPua1ujٕZ,SE4Є!VCJV,$ 7@@.~Hckb+F%Њ,1 5&nߢq@g:# I^+L|YT\9NGKazS{Bx2Gr"J 6+Gyl,Fv@OA:6[ȿ5杉NtdE7 Y /\!ajQQu^T- 9tV.nQ̀yA< fm@` ^Y6?R\p &:҄YԌi:`v3yl.מ1Pp,̐Fv |a! Qx.sZP %trhl&SywoF'Bo6y",Cz,R{g+7{B+e0oOθt'{b؊TlJar}yV{if@yaIߴ 7à~qQni ;l-Ȅ.0F2RILaR{5>!&2#%-U#lZ8g5I8WF 4Tn$˪\`L3Xe9vV>=3w$2OxTzS.l7d>+M`ljspR%AX{ϩ /}ڛ/\"H / մF5wۍz=DڲssZ d)ִ 5J{iDGU扒ȡ.*msddXT IiR}=T|#:=H7ᠤZia4:,3apGDeޚ$a7y2&Pj>@36*Jx@/Pb9}Aj=ilnp8!ex eթ7f:ko Yn%IMΚͬc۹:lQRDž{Kk':D7F툉LN孾 eWt fDy8: -`Th효 B~(hZ- qX\Xn)Hh7P%'_Kb/!\[ɚ:H3o6;f<89R_#0v.*X:2E֚HLR" Ze$ wK 7'֬lm*䅮/p̵V( ky&n$n9 AOa2VIʋ|1PRnvR3Elj<($URõ\l|@F=B> Ԝ񟈪_&wan`vt\ۊ732 YTu'EM!׊]0{Z^JA؇(n+V,b4Z18cDw`¦s}btdV`1Q$͐A/VnRVU~snVnUxeXN/g.dݟli |<1*ѯ]'d_.k{ngR6a $56-EtD3|iZpԛ `o! C#:*mַ ϐ-Y9z_ٍuy|^OϏ??Vo'tˡ @Ϳ\|9~s~s~RI=چ]i5qsa-n \k&(2HZ #foȐ.17$1H8KCʱO#_T[ O&[E1L$*`[ d(Z.QIMmo`wŭSgtMT ȯ1r3Le:#iwW?[uLc#'8;8==:l.c{S@ (|ҏYYZaYwPtIlOH]o8, - 2o~a4Fs𡯏 2K$/t1貥] <~㨍䞍&s3ѷ]i0K  $F{YsT63L0R#31 jA 'NMoFoH^(Rt/@?Vm //?p jvyӠ5 zq; _IiH_x?MNggaǼpE Y QXؤTɪs3:iqw3 2-ժv}%#a+SL ʫ5¦jr9h ;ߕl :CHZWgJ6 n׭ p-\(>$csڃjps-hGa}Y $ > On/Ac堷ݟOM6?9wbG?(\P~Lf1u9;|E:S&ۑ v)DZ?v #_(`ռy񄷛뉿!i?58b"rKh x󕲪SyFӈ4,HmIi.M(?MBE-7_"w|7Τ9T\g;6m9w, FI"eګof_QGiHBW5A!mm$UGz m̫rDU ym n(B b/MFՄW_X0@JߞNk4SJ.m?.VMKiI dA1#=!^ޗoޅF KTjBl`*o]gr:u4FzaKαֳh=cbC2.Y1dٲc aaD_ŁfpdF_z;#3 1u];zUC*uC5`+F<~5D'Jssm^\}'\VvZ >w˕c(T9~E]ʕRPH87?ذ, [lg?ձsô7 Og6 @"ẕ:~ z8&\uQ.󗋏~q| ը}Ll v3O*#aGiغO.PF&5 WUM=jĴ> ^[@r"A9&/}O 蘴Y[u_nz7yuvX9o lh rEn91Xy- ǎ\,EXSqt@.!#2ʁ&hb ;IwaC)_+<F;/L+ΐ8P]~I00!$p_a B` ]E("$[m.^~%E"ﰘ KL͇RcNҘ03,.QB4KsmyoGq=bYÝQ}YE_*'F '+TQd9sVh6*߯y=z,폁 UwِSipJd*;.X9 !^0&L+(XɠF9W@D&1`(܈ZZ> \_>}Brq9鮇~-8h$~a~~2_-+~U8(fH]W!c4 Q}h*ȶ@+*]${#;jVIT/WbwZU<+GblN Ȱ/ yeF^ZCrg4j2H)AUDR|pkԙ`<-Mx M2& hz7 3z Kiisw*dq@߂,D|v&dWn6k~w:A*2U]5TxhQlpy7w/[[-o)IƆR 'fKx2J=o};*p[֖/fp,1)e;JÚ)jd=ypl)0=k'o^߿d_yf>^ݣqVstpdΣE0 c:avYGV.Z`զg0IF! /5~lcR5*ӫY-n񄷎kC;w~zÔANƂg+W.Q\~(y\\pr"%OY;BF}72z` pV(Y>`a_plnzfA"|Ja~D3֙o:yB YA1jO${y P(R>A裖 gsUnA+R MۡF{hc`.cs1S a_(qMXH˦!fwc.X.hЋ^>³0 P\r:aD|<ܥYs ^8CʿӲ 5qdkMG4d3evY*K !e/K>]oIk7j@oнUÝy͉R%:s\{KtHfGF6m/FJł9l!*y`EN RÝ9 +ScVa ^W^ NnĒ%JAhh0[ ~@+}=aƕW_ U6HsY?9*Ӷ&Ə =l9CKt=I;$KǺhp(y4ANq;of$||K%ݚ@8,aUpa0H N$T^]7iCu"-CQŕ.J mfuW`X  gEy/6Qj)#x/@#ڄ3#?vB4Q?znx<ΕYȍ/$@Q[ =21WDGfE?ԴM1k@' ;f?`30j2\4k8j۩zzWɮd0F9 2ɬMsdn`vO֎@K/qzf(b֍% "ّe>/SkoHa)82N䇪!Y*"]uଌq Ysrwf٘BZ6kU.n$ĉYG]:A&|w& \oӟ>i|izVY^uSCԎ&(9 SUݣ}s8ӥur}moc7'KV^ʍ 1OyA8\QG&i"A䉹'5uNn_hC{ZsmoYUэ*~.5DĈ='ʰnS Ee``~/y}t!.s=#)Ok hx&չgp34 ,]w4.ń0 !ߐj;wgߙ!y2<o{,AWΤai`h}67Mf9\?WvfՁ('xuNd@5z'KdGJ 0dew!ˁuޗ}O/ RPBuS>0S&㙤.MҌD?A@a׾0[e;PUtUDQ H{:i_ºYӟϳac5z7#DxA7O?:ں@eZֿH7F)j0ii]YjnSƁf8rJR$^sMna[Kܰ•Ρ|+(eZGTtRY -?daM#~n˫Z98rn؅:"ؙO]mphqV2|;@9f&ax*TpJWE弰c,$W,-3q3W)?h- c0!t}+l6g=eQKVeKuEtāEi6VT.n7xKZ/kK.cZ={g_vfyNE5ۋRq{q>?~__IL`4Sv s]d>("n*//E|T?+$zGS( KZo?E$syGs9RzfExCQC~I n.1W!_?4`y]1mЮ,z4{M1}|A8MtD>|26 /=ixd8'j`!X{k5' sh ePxyQ,G Ͱ_sH~ o7gjXr)r$o7 ftG,k{7蓾cޢƺ lg˘ʐ%ZϡoV!tqęTI.C/s iPjSADLDT_mDr"^o1QU[,$ ˰q(aI@.ojFF)c#4v]!/gTe 3[_NE7okڛPRqW&qyw앻τ*oaA Z,E>TőZ2%E6MkjyF*/"L' ZԢYKņ9%sehMb CH~삯ѱ=7iEi&ʜ[l&Hֲs{Uz!=1#ٕf]64Q’t*Pڡ{.oaSTGdF LY#{FFV>/@ۨ|./,uřwy;jBtY8譠jMhUlK гu⛋F߳a}+b`ڝ@gAk;3uW^_߻se-eH6Lņ **8̘+r/b/e}i[nWi9J2&$0{xM x@}jpνCWȨr,@I ΰ"E\О65k}8b Q.sU-bT]7>[pYp}?,P](10Y^?U9фj~G*wV.EGKר:u֯]i8LaF%0 wݵm$o4f[~"#]Q6e2mdy[r/aZ~зۃdrITG=F!2Z`kRa65bZIuEdF&5hyoG=?epM/_zI>H ;_z[Gj$z܁ 3t5=w!'e#CBȫZhq'rw-}$AcHs-:d@d{QJB/fVp۹\,ŋS>TW85Dx+X ũ3/=Eh^hjZPՊIiӟ$hQ7 #GdV-iI+EDЃZsr{B''lgPߌ阪S.r $s}՗pgu.R#I栦F$R쩶V>o+ӟǹ7/| SU'yIn]NP14"]#aЦfIpJNƲmm 5V/q<xM;7St+\w W~ޥ02u&Ȩi-]D^=qm^RYLgV0Ӗ| GG, 4%-]V\V1'б>^8ӕ* G dPdXD&؄<ݴmA]d#R. U{ytD^-ZKnJ?(Mup*w|́%?1-4 7RĆ@Q?l bgk|,rwFEs؝Aw%$&3,h3 5:ti$׭Gelo8tMn]ؓ%Iwf^^!ӏb. ٮeoVX</VA_+GUAФOU`4 f|1ܙ(_\T)#GpՌoup'!FZXr1Yxkp/w~y%ҬVG{ qyΓK7%.LNh⦏a8%^8ŽS-y|NadY΍ut%s| &M k),48$RqKC QKv4´Բv8;^'T3L3;q.G pbߪ[^uo] W&x.AbNV.K0o\Kj%7+d*HLS.%GLZ΂•d,9>a$!Z0'cpwkvO)'a_ Ÿ}(ľ$ 06x{ \|`ش#=:7)pX*9jnomLBajYccuΑrRqG#ysa ]pwBiCrdʑ^ǶwtN'/ag"[BgQΫqh!THWI<"Ye)31 T,#.qN4ekΝuy]u q.A)ؽ΂NrlNrsughL6i![9m"SttB =fGuq-}8waԷφZ'ꁑBE_ _~CVX} oI807]`:єYy8 eJ6@@hNm eկŭT>15)ŋ<%QW7O+j$Ұ[W|DQeel^X׌|)Ls<`D0rC$pV t7Pq =_GDQ?ţTh~NB+7!<-~UB:+^z,dxbzhV!}sHn>DU:nZJg2Vf h?f\rm,Uժ+doMUnȘW.>/>]w'_.~??#guΑ~DQ 8m0Zdsv-H*]@~~1GSȊmaIƹȓ^O)#\u҂t=@TJF%Xzn{R#0 ;]&c OCuK-稭o UoT6P Cx aLk)[Pp Їp~l`,~#/H3~')- .Rn<(.ǂEHd2 YtNevw -[q*XYGlώjc᰼u a 23X.]U` #/ۦmzm<ݧ{AwkީtBd}.Z|ΗDŽz<{2ӚtLv uf@:C';kEޯ OzåyKl?$ۼl6`gˤPJW͸gp0ވ>kp@VM`ݹ1rk_=4D0Gr2q^|-`U/O:;Ɣ= nΕ9J[-aϟ>L5>\8~t) 5IQ֔kz~H^d{+L`XO;8XV[K."Vj-ɩ 84Ow:]IJgL皥G-Gۭӿ\tb>ø2"KXoްYDXrsБ|}z ]{0;Ȅ*FZ{\Le:P9P#>%(GGqC  $L1o^Lt%B*#c d/sUV2t8Lֵ;A,Rй=cNn!)C,^5WFcՆl,*HVT&oGƤ'Υ@pJZ3!U&q$W$sÊe[&\hS[mnvw$df҇>6;p];> 3|$R+ڏn`ńp!)F l_o yA3L${Z{s7WYeygkf#ր^@da {EXawvꁆMchA0 x@]šos>MSM(P~U;3B+.p  \9!Iv+]SAdrIf뜏q7GJI[;âudiW92 PȟE݄}cڠ` k@ Ԟ+wGG0LE*n1tknm/{L0Ȣ;}ƙ˚WT*C Y Fs-`1U r;IUB0uU;!M%0ܐ.sGk;'p bq 򽨰&:؊*k {b>ͫ&;t r+nnfv$04*dE5t7ddSqKўS߆*qu>QYIjw]艝Mݍ{bƨ=ŦKg0*8ę3#+ͩw^;Mi+аWv8ϓ{޿:\'k_ OБ4esn̿|eW>H^bNFT)j)\Y(&hZ'Mkka {`B_r*Sb/4CQ>B=gYC=ʅ C' pd^s&pf2NWTpk?(Zm]l|aFu-pߔI+ѢqAIFq~ttێu5u:d߄+e֙+6 O ׶S$Wg`~^K?՘&¯ thKnk =0[iǐasRlT/5wB #]B_><]C'biE DcF: &]vIB?i INn>޷(ٰ cwΰhդ"F0H.`DFOG Yz+$n7|u{زLU/R=K{L)\NNS>43Τ$OLqVy/VDb}7Aoe1Z1ֽ[nɀymVW =(Mt5BWbցV4Q'M%aYeo*xTcw3te`-.v6'RNmebf__㏣:kn֞Uͱ !Wh(?\DV&vw!${n5p sGKI$#KQ*,nAEqƴ|}W[bk zNF1),_Z-eyz:F$< ~8@lCHOPHFE>@V#nplzR{'Q~$xY8L4?Z[|gUf:'yL30:¸@;YsMǘԚ62SCmG6 \E}mؾ]ܘ!S2ʄtz?$W[`P ;![."s6&x8q2 QH3^MҀщѲr)["Iᦫ|m\J^U;׏ B~ IIkꈁQ[c@G\ i:d(`LGYHWb`$ܑΠ f|f\m5A e$˗Q@'EhvF2}NPXu g{[(cYמ(o뺼1TȖg&NM+W7~h!qޤF;"~9o$Eptt~rgHO (]h?iD7{z}u{a#5adb5_U.:#{}ԷmX&9`ESu& Jb1W%_Rr Dzimئ{g +w=Lqs) .JOx@ _Z-+i%9}z)Ta6 ~ k~d˜zcSI97Tռ\A6ʬ)KR7H峔 8`౺ǗzX8H2|7Ww_on:B6Mw %$kN?}.&~DCkO/q1yᤘr˲Oz7Pg0vj*Zw UZ۽1m2A¼Yi黇I!"cx?ef6GcJ='!b;%=})?ZtfERvd ^ÐTWsjE`@8W6J9f;#tɪb2;XݸWelMaU6,Yz[M:g`i ]n4G8K_k& Hq!]ySxI9j 9+CН vs E.2OY sV5fLA|P~t?%VZف2_].qHݍh:$;&qq4JH"7M t"= ApL@8$vz1R:$lK7Q]#[w~:O ΛG`@fOmVbKޒ 8{;θ?߿t\kE(l H DBX%kA"yE:YMxV3qG`eU.#<׫ȕnb+\kWo TB~?RRĿ_Ywdj@Q<&WCEl(?b"[Ztp#K.V=6OݝU;n\psN]s!kjm5`: <Ɉl `~rzx…i;U/A=-CK?h_!ļq>{i"J ;VŖhir4 (Ġ, K~4)oqw![ӄ, "ap7LJgO8#\gw|c&yⴟpPoK.;Sm7eK]Lis iMU-_+K{iOQ/^rp~5þi4! N~ .]Kmz# ֧͡g_JL xFves(RJvFn  "Bef'0yiIzEXl@ UM?i+TbUy/Op+",>g H GBEʖwۻ^ẂhWJm3Zܐԭb8Z kV-:nlBMf(N45p܍CdqT@!OC} 2R&&=yP>P&pq&"bB[Ly1v &%ujIl(DZM̨ !c?) GQ⡡$Ʉ3wg.NZ= ]h>͹Zy.(mW!{Js*ͬhC=7̺bV(3̽j.jý^"]ŰX9 =7q~X[9k ;G5b;Qqxvxڛr%\35ޝ, ,& sOqW}< $o Z8+q$.C's?j-T zuP"{Ԥ\,p; Tv:> eG&zcvqmqS Y ep ;~f8jgML6oܟqOavD˥W^.虂RJ (^RDc:744 fj[+u4ky/pzm:nd /2CJq:1J׳ԧE%,:Z+D /;)j, !^۾t優ŴIwTI;;l}iɹRqFu]r I+^5-Q('ajM,KNyS-)F.O6FZALj!%|Q_}i% qВ$sRs襪$Q" > 8UW%}#3w=-R:/i]`pag6뾜wGcto|08$wX[ʧB&:I r3Vh TᴟKy /*4 C@KRq8Xx4b|'aH%|x͚ZgAt7z G1RV {8 YtIGFwa|dJ%GZ@͞QFk{MՊE]h\:Yz%llݪE{X\苅ñA?Fzu2omOm ʓp[ -H.l]a. l"J*K,+NW rqtζxcբ}oILH3oq<AVoǩ2jЩhC 5ILխk[*c@ ĽRQ$ 16AE)_y'>Ūx8ƧYpí4m=^xƙ2L?/kՙhQ:WK9΋ex?RPolKBvsjA%'l>IF`l(<{ULAϓGRcY{ HZQliLhCʰ fp[P7UmҜq0,3]!]÷۳K8=K>^ .L|4kiqA= :F4_M#@m-.I=[;9Lk.+h=xGZ~S,7ffpl)}Ej(X bX*!ސQvi.^M9>XL5X4f#:J~ӛQTܸQ1$c6Κ^Z4rN"N+:h Cuk. Ee⭮v5Bi4#vGq)ڼќ5H%g53ݬ9pJ'᫽sJ`aD/c1=pi#<[Exqc6fONͶ1(ܶZu#YIC}N.zDk 9V,)·c[!$$ViknBĥ0FtwMQc&%c=Zh tfeOc>a~Ɉ>*L([. }GOۂYȘ; T6/-/;DJ~\7LLo5UX%Ԃ|1Җ2@&C\L18ñX<13䌴_/,D,WHBM]YF?eI ԃe1RKl̝[&L X`8߾ u3<(bzٜ3[g3*ceM^=]}jo^))|;+Ytč⒇dw ܋& LybJ~JQ{f"I(IZ}`$kN' q)Z&f\\E/&"gǗowVђXS1s<3 r63:C`xwYn3"]H.9(=xcQ ;NnHj( !Th[Θ ᧪4fle\. pR۳H\T7M=\NWYk`i oI=qAJKŸ8* Fԓ:. ]G_Ӝzne_ZZ0Un%}1\xDyֻC6'w+3J=*10*9u0>!{9Ȱ&XyEf^>ϩ Ϩk?5&Miu,N|XEE'W S!tM %_q{o=&vu`4ESIB&=ҫ|&=;rg[Ӵ|/KZ'8߿?H1g1/٨r k9 L/jj?:OZOZt8 wF}*݆.LKKu6ucQt{zRs Y&*Fצ#,R]XZ2Q@$dV}?me MrY;Vh_-c=#2vgM:cm9u/I"D_F9=kmʹV8{)} b)]=H kvDj]h8eO+ǸսPī/m~wq^8/F jГE` tc S-&)R,C#rw*c1=ɵ'Gp@׈l.ԡHd]r=m 64S.*7\N9+!q*׾wW& ϝ<~2zA7(}nt&>a6etIGf{-ƈ@j+P/tA4Sgٰ?S:9:~X7w$*W%#Crwuף?TXb+U_'Qk#3y5pxQѢ=Af"kU6;xᛀ:'A,Fȶo,NvƗ oo^.cr?4Ýo7KFu1 ]Z0z SGjl䫲(0s|p_O:"1{#0^ 6 q^KnBΞ"{ 98/zYb:Nč~! g|&|>:KTP*h`'`CV!'y8iC#>cZ&c_@RQ=6&Co|2޴YM8T/OZ#75xHZ{,fYsժJ 4jL)޸&<$*DQ(nܖ{&b&ʕ|։hr84l)rht ^O+&jRQȉKlhÒT8mĞ L}~Rh -#TEX27@Soc/$ wsֻݮn;pB4nv~ Cd޲ M%-\s`>WM'$He%j/i*I2AR8ZuWsbdCٞt2]oTqɜ8ebI|WMr̍'ߺvڟ,c&S2=䓼CYTUS8KƇ9;.cK2>*( gW޼}Q~ 76d4ۖ[wYtM,!]JN}E ir-sj~هFI ~iq4P-ZQې+afY~yVk>Nե%C ç4L{|JAϨ3/XEmXL)@/XL nvhjYLϵXOMiRs)X@*G~>= X ݁HL YEin͔)z#R[i8SP3U ~zY8k>GL;dDN^ %pYt1djFf4t㇝lTN\O[6kD]zYOoz>Pyl|*vE~ ֬KӦ q]xIm?P<4U Yc%yBc^k_O;krCGdG쾈T(\r2|6oAf (\]Ls=*RJY=&7A FqQYeFQn],(}W{tE}s?3NE`^&Cw5QS={p-Ŕ+uZ)1B! "w; 2=!/RX^ܐ٫gͧE 'uZ4zή~𓷽&3[#͛a{n 4ȹ\Ǔvɛwrk- `ʜN1\h!Worg2QNhB, s(.exɓJt`} ,&$Kݔ&_^ 5NǓo#RGKzTh41:8t~4&\`iLn A3 +22?%бL?Zv]vT+$?*W v}6*98e h47_=2o Fqmchj qe\8g^w[ -=I!djӊO![6%gPW1Y\ +0C~ C!Ag]!tqAQyI).QOhv%QC86Iu4eAXͿEĐPqBZ Bp6t 34L٘ tXm2+4ntɿ&v<n< DwfJPr-:5ӚީA%EsuhzrtQ֑gTJ,8#XUaܥfLIY|U8r.H[ՓՏg%RU}0RDtL>[/%,͡~A Ddӝʧ:$kRte_yjA-֤v\Zg6r)qvp܀/ %[$E ƀRCt& +֋oLoo{BMLå IJKpp~vtƋ$pWոp+Q6î܆&Gx:v}GSL5/E-є3Ul} GV<Ƿiv@8{|s)iYihlη@fn|6>6j[͜҈KD~ԧs!sMcFz3)bAC'?L_Y "_WNcFLd@ka!<*u1WHV$ *sՁWS-LVvc7OË"[Y?AY'ם)nkm\D乛N6qERpT_U~a+2Pƈ{(.BlӣĔ+8=LA7sK;;`pj}n$V RXW`X:R(cjHjs.dĹb9pOϙዠ w- _Eh$- xpKܬY>Vi9~UE4UQqy[w Ddun|wv.u/\fcf*8G!l#Nvsd)Szurқ\EL}6 )3mVKYPQܟ@vkhŖ̏yeZhܚ $(H3s줙 Cc`/J֣ d JlBGfHTNǵ_b#sr7>,gXi1䂣Dt%J΁~JPL:+[5F\ )Py5KŎYtيUZ{^̐ W-5*-EOic1 ُ}o&Y0ahߎ u+\g0zX0ryxMxu=ZXg%9'w:en4қsApIc@nD+Fv@`;뿃{Qg:x)/ #,R1_.^*;>?9(.JƼAM$!֢AiTyLm{-Q]U'gXi~l+_ضmTo d[ᜲʱEI͞y?*KbW ̄K}~/#W% U 4Wj_ǥ>-HEzAi8|5!I $vXn?j0| =ܴ畠B D4}Lw|tYp} :3O$yax7<9[\pU;0>qoM_ ز󠸅^fƠ$V)d6Ermrb2+Mc^6QUmTtIuTplYeٮ y5rD1+K1{lo6/8nv3ioOqT 3WH`Dg'{2,& j JOe`vS.Z!!TD䠴(2Z K}L0au4>.5Va&\҉v n$b4V^}2rpy5lsp׋v^_qPU3$Uc|KwTOK^HWk uvPyK]5`KZRJGZtG@ ~Bw#%o/يHo9껈çQ6^2%݌J)-rJpbm?Ƽ]SFa#Rz6~o\ZpVqUiE*CȞG7g۸ K 8}u+~9GLZB𶞙@@@k܋NMY.-1MJe}** *E4$!5T7wb] n413ƂÅSޮڞbsd8Wvm~wƫd>|p#y}SC>R؜3'59vwߡ}{*Yۘl%O/qrBsdt@.1P /XXpV]>ma./o}rdJmؘ?Č?@gal,_2+/,@jҬSACڠb{ KkGdKkEŵ{| |Bhfđ*֞ {Ysѱ8a_jiFF_ LԅTQ |ګ[\LArf TE 9} ,_%6qRmJ5ۙlӡ^:0rEfoY|D:4ܫR{g_ON̽Sjt gi1L ehKp~vxҾ#9!-QqQBN]m5-`T b[Fz10θP614jَV}KXŵͨn)[o]CU䈵-uDQ#P%aSu v>fI0߆aSr҈A9hCg avg6Ru7-U3HD`}tk&%m hyҍ~o8jp!O`ms ϴDA'yM(Tuɸڏd.RwsJ"wX\䦜P ]sJW#zuܜYI m[#gb`GC?F1C&i{{[dA j1߃ qq0yc.[񶗧 ߈*ƺ qjY&!9)X,)ߧI#Vs][a8*HYX`)c KWOi taag/6NA E{ב-UH}V';6@8s{62ԕm)Nbq>F^AkD9GF6J1A0V `] ah݉_FIR3kK `a&W%@8^~'w-Tq1웕HxGר%֍+TLu85Wr{zQm591f !1>VqAA aB`wT Uu QFE^ TYfhFOPc#Pc<%ϣ|(@Z9v BTzf8D4' l@41&0yK~?(n g@u f1÷L|A; ʄ7gmM&ݷ O'Uدڗ>Ϭk]_zenEluQj>IP-Sjq4ʑ+D/5="Lsaf7s3g^bz){4^aê‰$Z&-Y Ƀά)S:9\tmn-z$js`*&ۘl6]Ɔ ;<3iFT98~:kB0[Y$*zrN;%ԣA.ndLߣԇڃ/YUVB GY~wX[ CH%$Q#2kRRȡ1lGc$vKf|`)6<,7AF}?F_\53'yQw:bLkwK%m,HpGIu/\%FNx%؏S.Ţ kԨab|~wa'UdoهX2iC Q2ڑ10-|)+ jl1n+勒Pb3Lw8zXc=z:DTɞr߾.C eH3OZ=k3&[vQNdR%M`U ]i5$IһJĕ^QO"B/-=1~q'(TU xviZJ/^Za7Vf4`v "mo3^fQ?c=Ukp2WgjO%ZR%JHg6MnkYԫb8r/, d Aw!LpKNe?lԄ-WZN[]l_[UA& ДB}#&j-<fn1oV@  ;3o3; 2O *Ă,#\쵻}߾ \u2dA*ڌl[3k2v}\^U\F4Uݬ4 3duǰD7Y?A9ŕ%‹tQl5-f9䣍I.)ٗ˳/U uc/9c=a<'=+np4 An5GDwaMUR xskWH[3;c*A']V'?M> q Sװu3zGXH[ؙzKSe}&FY'K\6p݁Vr">Z0,IUl>OG|Dx^`|Nn٠ `z[bn׍7k);o*Rpl-?b#Yl2 3+*Z:6goN\@|K_0\> pgF\>MlLn$LA^^sqt<0a*/TaBF{G$Y66_>8,ž<}VUcom5-5k}?]:dTzQ[Gt# Wm4-F*%{(J!3Zo/! eA;8iV,<e*W`}]UrխRl#3Eyuu}Iap}ytr{U'b-*>^PVv[w=)uno("8oGFʑCaDF]BER529Otƀ!ZmCN'%y?}8*YGp\Rn+qR܈Xޤơ)E;Q:DYj8U*:˔>F5ljI.C  ul"#\F=kf4rv=(#mt~zшl#<?NЏ;Yq)غ PtwgƧ"3`nhtf.HVd|q&h W ΋Jgׁ1Mhu{@;*(rwȽ7hD<ƕ Wr3*B^,@6B*?W[%mŘ".j/-S)Mfպ%5jc+R«Y%guF2Hs F c]OmGEsCaOzM]?Eq )sZ~>81F1Ɋ kՂ .{NGneO*dWg;3ǒV*tAY!qU rfbl2YH˦{raQZ14cR /Z+w5Oa6gHH=FRD :A9=U1fp@{~ Sʮ\MsdhwZZ3- ,V{Zq*̤HbF3jI!m$f-COҋ?'S7hv/zm仱A#.k+>dވy-1ˬbG9SC'M/r54 S*,o+?>ۤczk)3]ݛCX6f=O2_ί=.+S sHhoi}R`.4)N :>4z MYVw,XaOwǯqg2MԎL\=,OmatFiGֱ XbK;:[{{ FBO,fA+M0kθF](3yN&Z+tSp 'a gׂY, gU/͕-Ep絈8Iq20"M%BTlUqX"٨2VCSژ"5wKg *9fpJK# ؄v1{n|`lk'B&ٍI-kHr$H&0F2/%V+m|FQD~U9,zđweCT.YI#԰a';$ Tle0T1GyspU+߷)3]ar:⟟m)bBQ 5h-wm%2> p-%ͫזmoVcrK>J&*]5eYdkC6''!J!O"*ǔw Z|䄘r45w"rAߣBfY<m|I~856H\| T*_[TlG6R'{!S[W^hG'#x~aQAġD_=KXe(h/UyQ".8dgGBOGrs/#]gD 0eYYR]r{]v#9.%IBFǬ*w$_V0&V]ZwDV+25UW; 1_b XoZjEf^Bcxo,&יL<'//б DpJRYH2`[psnYCl}^.*p :۠3?L2TvFmA eE}W}2( Mf"Vc'k"l\Q?oD* 5&CDXu wJ|P #KREm 7~YMehLEjb,O-6"SU٠gp10(ߨ)ąKK篛:(O ɷ j:xe;|Xȉ+js3Y%0vT_̬&y%17 kΣib7zYMz\.O7qNB\ :g񋱢u)? 7(k.K w/vC%u=iWRݣ? oKsϦEU%>%7E:Mh.-aMXS_s>J'U/{ؿ/f"tH.KS6HEQQw-b9 @Ta~&YshL9m1H.{0) %Soa : <"֖z>0K H"nM 8Z!K`PRXUϱ`Ku O!.$gk݇.Ny袡g>e,^ ,ept xe1SB/dCbt/pAs u7 p<9ĤHK~+ru,=8g29ޜƌ000Dύ.Ð m̉)qq5[vӜO6='P.${&6fyɰY&4P"#rSYug_JZCok<KŪڤA|hˠQ̈́0s]fA7VP#^ QWyLDVYD^р˓(B%If=ѷ ؀9唜l%}"o8Rb>?"ǾыSS_xt0|$Ț87Gb]Gꜵ!Tq`=OPhPahYo ބtXtlvK"velky1gK0l~ߖ՚cw Y̚q%%Q)?nݎCCv<{Ii/ݕc–V󣭑b'WZtv2T.Sq]͂tySwUgdZ2x7svd,HRSQ:1W8.t<0(.fW *Urrpu_mi2ʻe<&0kav@Rm ĬՌg{D۱ xV9k"Z@)Sm '#NtYb򁑜\^ŞMtub<ؿ8N7\S_GC -W-TDuZdĂܩhfM'AUߝỖaTlRŊ2nvы,8zp={6+H\cџ>m6Ē*ǘG(/O&9в15&H@+i:`;LP%uz4y21 /k@V5dh*B%Lr1V\xr>yZӧe`l{o?ګQr)j`28O&x iSKv`']3F--5/s\ކYOZ/ëZed2qNfRGLflVye_ f7 30׸'[YFOBʋ,N$Uӕ2פ PF#q F%}匇ORL9dW^ՃŘjJ8qY{n lK11qw)/Hřlq*r;y7imJ#E8Nmafۖ)6n܏G$oΨB3C|%2󊃂/Z?å>fE_A ̜z$XA}:tU]mE#*V ȶNh]_Ϯ <5VOQ4d(AXza~qi+k|q]^=A1Cx&G.iz9 Pc^:GDTE^JA7YLSa k1Q!nW{ srswW;~TdEI2]a}NDUw.Kz]qBn$ȖQzƭi3$bt>~6s >@~#NJ,LK&vмi6 KQ!bmHz69[Œhe(ޭ03 \n'rl!OHt?auv i6OhLaPmZ^kVki-'h3vb[{}4O5lN+1cnKQmg m8UJ&P&ƌ<9%UɛGw2-DZω>dӫMV~#m䣷}d8; RFo .nϋLϥPty@a|j mPY+b4J3A;']"ҭS!3)AUoc%`$™ָI1W ࢺ+y&4T'VYHijoYmsv'ZV+9(+tn 3GXR-`đs$=kjSU8)bqhPwlj=+z{2upzb8Mi>WH8Hc! rf/dB+Jtf`t]4k%Y+z-J >+ /u\bh'o>./E\)ʒ-_@l[~=q8OD`aqzW/lÌ#yzd6i Vk5,zRkŸv_k>cOf(|pe8ntʕjpBɣWƪt z%3حDM!@ꄓIdA_,$c;QŷTǁfh2g$ ?niS~i+z ydDV]xLgvDL;Vܦ7yl.FN4H0|&oybΓЭ=$Uv䶌$  S{|s |/vyY7?,=XY{=E(9rX6%lI?C+T`?%0/:d99?*ud0 Z/\QEe"2bH#8i_Q̄568A5 U֬,/ ).FqiNZ0a>j .Ի]$~O;S8&t>U }zN t¡V,C ]\((۽'9v?Fݻw4?ܿ]I`09sMn<侨 utKeX,n V`tqy~\lV_mE*m60>+ fQ@e^[o]Lw$yB!Pve!\L~X,÷NʄZPT=.},Q=hF荕:{B[!qy˰cSbv _f=56-+Ɲ  i17Gy4y-`ymj+D@;mk$l`ya-~-a\&{Tؤ*~-.Mw+Sh%[Z,?5ݝSΓ:K͑#)!E8b¡ZmQcYsMVKK&Sրt4]p$)wt?{ֻLU5kC v¦ߧ4jDJ$CZGi*[ 2 S0\5Ie19{FP5ZYͣ.Zj?TAOWulҭg] 2cl<__Lr dE^z( yн){瑝ݚWbQ ׭ VĒ2L/r0ճr++&]RzOky7q/գn0@3g-d#˪@\D{.ār?Z F#z[mQ<p Gpm EF0gc:&W /m?8&Fk<nIXMbam~uXmKeXVi>CV^YcX#Pk̳v%[@*ǎyJo>y"uuϭbݑ,&JdRtDQӦȗ_^VZ9O4-<"bp:*m3%}q>W[POr fB2#<9t_m&xue㼁~_5oק2~(NC)=>9 ~u~Ѿ vƥ.ww|h4u<9\ñ0g ֚E9;X&::-Ȅ;3%0KMIR2?veJ9 h]Bj `ULZ|ܥpI9|;zPxWʯ܌'O"kf ~m&ftfm֤?[uL?9>l]/~m_UAs^+H@H /"2YH=-0;3-SlO pF`0)%B/ixŏ()\"ڭ_icie=0<~MpƧ'_ ,,Q I,+u(D/kFIs}re1;eC:$j5M1&ΐ$ߟ5߂݈7;E֙0a>pOnK2EoMT.WXۨ]vDы}()k;ѐzI/>M{?Y}c^ 9q"dFVi@{CKϴN;WL蠫ҘxJa'<AL9.T^}.IPgd 0hm*MRr@Y,abSvê<ORESU#sñ.CgvP zÌ 8*ÚA Rv?4S6FagzS>7>&Py n.\&CLSms̘:xW9磻!chp:XLJ [ގHpXL &R|ejj4%dF(BՋ.Wk'jIĩiCk,lnA1DSXM FaI.+5ՆP*4r B|u_/.R^;;5m݅9;d2d5·0OGiH"W5A^Vif$)6Qbk%,'1Ba#ǠP!\CiW= z✣Q}}:Q̜Treqc5DA:rf8=$Eb)JMa06y\ ])g.,BƣsxHyh#c.d\Dic<fO(ύЌ6)9W~ NɁa{]udF|gLjڗ_2KȢ slU豈_ڡ[i6<>^uZ `Tci- P^n,sn S%_OO7H|ygDz;~ -~S1ݟՠnjĢu+upM\u1N 8z>%ib.]BpmU).$qM #TUESm:1tBp@y^j6/!ڧOhA֬zc&oX9oE S’Ȯ'.@aܑ,PkH׾ 2bp*iBTrw"4>MM~$h}=9u%ʋX&su|<'cB b0''I0;1op`HmDIjoc:=ԛ 4~?ZtT b$Ёs)N4K/p۽(FZ㜋!.o; gDN_.ߤ40N)$p_c Xhl n"n)o_+ED Z^~pwLDuߠX(D4Kh'}*/#6 -ٶaQD|5|YQVYEo*M#J.U6(g.5߯y],돉?W c$ӈD|e{UޠO{Pfh(C|8w,+(\5ʠF+5'B&i.X/A7"zVP _o]hR^_zeWg(u'Ӹrck_ONJ_U*gw0wWF %3jKy+YlXrhE.:9ɞzZ[*C&!͕Zt:#yQUbgU'7hLs̚eCͅ.e'`CIz^CbL2t!x /i hTY7CR=PZl1 wu?A돲L(^?>gr QlM^RW]lRSw@VkeDM_68+5&r`Mgtr׷e|2V8b.{ ;nQgؤ/_}(c%,1sg%Uf~ޓ۳>/P VhKG~&%S?=#2n?IO`S>כW?<zɕaǺ:V #9NΰL=e>bjawJ)cB)WZw*Me%Ŝ47B2(Lyɕml9 bf IOf)\DӾ;խ-SQo?=zvfCjz~YԇkG_axQk4rKj[Өy<a'L5[C4T]88tj<9}5}6Cz2)Nam|6%GVl4uC60+8kU4id &+vki] J$^J\Kab6`+*7HYs02ه!xы}(&gvMJcf s Cnn_h"XW`G/@#%Pmb $ '`6 M@TZB%7'[I bs+^Cr3<7쿨|pY,\_>K?99`&B1С(3:WHAⅭu-]FS D:UۈOj>!WƖBgI.XiHL(x~)1^(@d 4÷{ Ln|]lYCKrqH2X!?#= P+ozpR!VλTp/c77),rZr*M o3;&M]42^Yfe(ҥ_)-}*WY퓹R" LEw̋BlQ + FVJ,>`lXl il5/A ~~\թxɜ{ĄV @;vq[zIHГ^F$P,=ihiR(-1"?z9fzkE5z% tKN۽^9w̘5YbN4-K5*U 6`HZ1TԞc. w& h폀,L Ͳܶ|NMcø&(zeΪ.-ҍؒYB5eU, k(Om|F[)zSVW'{:k}z{ i5F;W8g*Lj]>J9 }pnUzO 'ˡ )Zݒs. DԦ|zvd<{v2'< ޔ?89?kJoپ>>t%拟7h`ySt7q')Zj12`n޽{xq"K]@Fiz38鯆mEa~ΜB^*KiG=%8*yծܠ /%̭Y-h6jZ4{xrĆA~wa_fcjoޛ%EJ2\Wחӟ?_־CFe,afgo˫3UxuƩ.0cc:(X`YJԸyg"~X$wMr6 uZ%]Y }!lks'sE?.铛|Cbok'?T{O+2C6U BcQFҮ}^qQRMPC⥺A.L*>I|ʪSWv(@#yMrPW;'"j~X\s6;fмpk1dnl tpqp͞kݻ;si`"]L?5-L.$c.;giCWہ~\ZOgwA 9g:˻63Myl7r̢jLJÓ 1hvby[tpyn{-_3}!;R6`x*ۙykn?^I;w{? ?+rݝaJvmcI=gz6E/>ZdڶdgUu€H"JbNϟyy_DMgժDIc/dNT$ַwePn9c (U F,Eܯs|4kYEY]Ǭ6@2{=y6P8w1"0ӏ8ϭ}|??I7FIjqӦz fřւSƁf8ʂ`Ipn-q תoN7MOJh3v}c[+UiU=kTtwyC4L|Aձev:tyFSzz*YC?^n"rgt=rwhk7q6 aSSALYap_5$Xȧ=z[ۋ^7K+C k7 ·ٳ'fN|Sw,«^,S0؇J&()}e0Zt8~w"l긘)U線Z n ͍i<f"`L}2-@]=v%9l/+]Et8a2tc+b #WWfPb[Y~ m4϶Je:Ӆ;^`Y +%]9מt$Oə0Fu.5LC2 $%_G<P_/LJhMIsڳHyުwK,n5t%9պ{vFߢֻxQI[/hrmı!e(IpmW,Ij:5L`1lQ$}THjH4CL4$'N $&ٛ qǷzc%Oijl Xk5pD'n%vYϐfs8Gc|Rf: 'ciZ8E| `^+-yzwLԝ8B[ML&C0d_j-x73]EvߙZc5tkruc1[%/ [XQ{5k=I*OA),>UdRh.,cdnNۻsR>Vq  e˵VC^[E ƚ`EeAcVL7gaAs W)I 3LV:e}$Rk[[M//&Qxq}:=nh`uTta`A! b1jd/Ȃa̋X%)?[+s n|.T攭%;?6]to/mNha) p̢—ngg4{6 ؙCP3f{ ~̹yIĹnf6Bǧl]gA63I6U hp!ɖUOffky ihG٢lgy~ .ḼǦ-sIiPSa*DLDP^mD0i7ߘWèۮY[5,؅eq0햋$R7 dFF!g#PƇŗ32L/R@qxmo{Ӕ P&J$ 18_N_ޒr{wqS-т-K}Ź?lHm1%"&5}ctP@ Tv-jj,%ņ9%̓sr<& { "!`&?@vWؾ7M,sU9C7LSc?ZV<{4}~ @_40cG$k'\u8i.k%pUt"[9\p%fVaZnT:?&7gTm`32yf߼–n8o/v`V {+bZtn,%h5o$@,L,Cۙy-2΍kR܁aj6|eXQx.\3DPz{Dd/Kۺw6Nv@_o +ɹD&ğhM>:k0 *\'3K:P:bI, +ҫYdisfu[^k㈱]P앏t)slF#늿^nIeMAqrCwT,/*'[ŌhB=ތGjR3j#QW9!,th<_L?FI1 ƀPk\sXٞD,N@pIc "øӥ Ze A<3H1 ~!Q Y̡;|6FdӦW0:ZCCļڦ~IJz3PTt[D Ρ0r)X^_!zzY|V{ն/=H sE<Ga"D`+6$"^J);SWa?>>SZ .Xl  ʬMRN&P4pv щ 仭r1Lhx~O|}?Yw` #}AѠݺ-wQmN셒%\lJ\'::Z}f+Y2 Mņ&-6a{?^!%َzzwYa蠝_\4Ѷ\.&ɱHztR6_ςIh{4b[;mՌ?h3~`,Mrh0ô_ӤpG]I.les0DFýcВVnF#SxFkEgl(Xʁc2mY i1Nw\&<P^. v?Y Rb<,S+&Gi{g[\w8EE3Mś&bt,6)BXM1jь裶qUGA)z1di>_ѧ.rS0! , K\fh_LBSذZ#^+_HQ6*HKc[\>9: 1/GRkk6{kl哯5tAg?m~VF2(H|&I^Ӆ GtL>#ھ(g|kۑEgM`[[|t`I \ $Wip2$:J,,Xf:,VWBHV߲)C ax' NDE >r2kvK5K)p0XLʝ==slexntE8i#ےå|~؇AjZ%o+[ rIhĹp-5T69bv]!*5 1IU0GӃ s?Iqۧ4S|u{]n;|q*TPNcMRbLh/=艧Z&6Eh^g4y#7Ѧ?;ԺFcGd8V\Լ'c$AKWݯ.{vf:Suj%VN 7]vwgyuZ`:)ԨD3=֪c8 3ŋn 0NDR[ P1,&]#aЦfIxJ'Om \k^xx:ȃ>4wI։n 8(r s<;Ztf#rL 2+&R:9V8{nV+6E=BuoV| ;K;Y4\9/kzҰCr@Jb|)qԨiW6_Yo+yS?[\Dt2&ZםaRD %zRu)ieO5EK{WO?M(A@!pf3?m^p|p֚-3gi<朴D?u6:7ta r`c r`'vlLKhn@w {skw"Ms؝Iwv?K-&3,f/>$ti27䷸"]Bc2n +7 G M~q- ٮeoQX<& 2 W;DZ9ꤰ"gަCcCAhr |5à ܙjZT)+Gp5l}psZXrqA1+h {{:L;\rB#+uu `o۱.yQzEC܍L>ƾj腓z\}1;{h$GeϟS= kܦOC"g1h?zIv5zȽ! zΒPƳCuFV¾0pu#eȽߣ,;]=Hsm 饚w\ò+ʅϥgaɫ͵^b|KR6!hYT6n^{wwM$ XFh 3Lт68G{ xL D}q(!Ar&'La6xg \|`شHO[#=&7)peq!#l;sP'`X/wA{5cyKa tkt!Cڐrdך)NdKhb~B3ci8ݣ--h;/im74 LWD] xYZFEYw'yų7'|*Z wpgpǎfr4,̞W$ȢİU VquM<+N5t#ÐXG#貝NНx6% zfgI=z3XF u,y&mwt~pܹ̌!{=rڱbᐰJAI{?2HGcNd@y?-Mr Ze7@N&s=UR3e;ll/GX [/wGy&>E%RHFtgh^hJQ\K ߐr?2\adĤDD6N5y k)FHGdqiZV̹j4Ⱥy)`fu۷˶uS `"'.Z \lY%[U6):B !3-@j3# u`;9ZP8waԷφZꁑÃP4`L*2Nh;%hIt]D!exKNqʔJm u2kOō>59)/xHP7O+j,(l*>JEN"[Qee<3S󵡌2̗Ifׁ} 8iSf{.rG 3Qwڄ8,Wm+-W5OQ+j^'\t-&s\;GGmyby L^,h(}9-t_6'ܱ1˴ً3T_K> z3M W1YOցC8rD:6H?Gc0ywxg=Zps(DKRЩhn8Eq6JA:07Hi9-nuq[fMH䍘gk)ˋqd@i٘%4YweGbħ?ҋz@E֞ޱA@й\,%F@h #ОعDjp:#Wg|ƞ3&cCM3@^2xPj53; S8䘟Lo$7,N=83"pIˌKNwG|6jfSa0n/z}b)r7/*NY#l.kE_wM ŗ25*g)JE6 q#VٟBꘞ~DYXjºl/t1rfz)7M'I9czr,&Gw=fiHL("t()=9r"^5W AHK8lLGi_E+-|-)+~//Y찮RpcQ\qxggwyxَ4BlEpk}&gK8yCpfFv/tx\0 #d ?saƥ//٪mzyWn͇F?;ifzb]fc_<>v¿`s|¢5Y@UthAVB:i 0pm;-VwiFEGY2YD?9gjF3"߽%Drܴ(6!V(N1rɵTVVFm Uˆ9+N.?\|rq{zogMn9m${a #ӛE6>;; r܂T"Y)QeRh>߲,rL:%b;tXRq.yדʸs9WaKb_Z@\"{4OQrw5Kt;ک4t]2J/p; +-cַ3Y?XlJAxЋ`6m)ơ"p ؇p~l`,%/I3>;q꽇T. x(R:8$Kvj%^oo XѴ'՘h6[װ60<%+ ZN=\wj!Ć'|qq62kwSfBٓlc7a#<4?pSVʝO>tEGK'~ __7 2l6pw@(v3H*ވbpz8!޳łrk_=4p318ad0q7|-`Ujk@0tS8'7_Tp3V"*mC>;MdhQx.S>uRj tt kzX~H^dG{+M 0l?.- r*%'sn+ U[wqmbssT㽝-;[[N.s؉~ƌ,MbyNawDXiϋ5tE We=jy1ށI2nAŌ[X;lX*rd_dĔhؙ?n(㡄 ,Q@>ŀ222I62m("&'r2D:\9rvtaݙ[x{M7&ֹ}E) u] S1,G}CZ0nJbB-ptdǑ-TG)纆$ q*;&Ao^;f& et.%+҅ f,)vE>$1u 4(n,avQZLw~g:KW.p )\95^Vvsz:劵$9.nwE-udiW92B TkYe-e”}mPf8mwDҞ+wGG0LF*0Ι^`Ҏmm,{L0Ew3b/k^QHC&TdQ'+/[bj;.W:-^-N*3YwyQ.fb֠0DSɒN]JJnHf9#Mӵ;'Z{QaMt ͪ/с\m6~{СV[twsc%yV!_-+Ϯɤ3%u 'j^e95mJ%.W=c|o<,Hk AI| ڙ艝V5=1PbS K3 f™s##w^;Mi+вWq8[ϓ;οB=gyؽ#̟F +YFW˹up&pfTdIL+e~*< wt 6n)&7~[&N -(fQGOWXB#Mhfzupm["J8Cӥ?8\Ƥ*'ж[.7 vL1lAPSʑ./@6qc剘uݸ`p"6)T}:I;9Xo+ )4@æ`pw5@낦gy`4dZ${`ztP Jo&j}\w?{{G[aϥ]Or٫ {da6$BbIаqJO! ?eHLrIɷiU㪄 9UzS&1^%ԊxmK آBNKK4 &8{[ޒ[k7vb>Qˏɷyݢa6i|>Hq^' `uPZm+cz |_ġ:nUͱIA^S G_yNMsRhi2H;_^7h[=~ZBO0*o%YR`q FNLr.KpzKlZï^G\┡/ŃG?֖K =cVQ|l3~8@lC gH PA̸1cӓ7wh~`Ϧ#T΁ ^F{)~vvE꡵M ..>T/1zp԰]t6JЍ01`]5+xD ѪcDK5 qOuIg?L)yC2 A6 H)ڞVԕ SK0RX15hf'wI ?Im3BtÎt{qDҠgQ{2$m_d@|O7 +a,&$qδ3Yיh> <>4g&MnMT_~ i-q@|eݮSL?BE g<_>}9Iy~aAIAo͞^]\(J/oH6`%\gׇQ?N}K߁ kZ2_q13 Ւ*n/%CbW"rI8HC={g +w=\S@]н/2ǯװVIz6|%oYKw-*f%m=@%vKx;3)iHhzvi;pr:2(vmgCN9֤fm1+/z@&&Cz#Nv>j1KerE)p+E:\GWsP!/N?7'YQ~w6W I}ɤl3 W<."ST.n&$fʷ9t P#f^]&$ ֖"&@m'!-pC҅']l,"":{B@KrQwqlۘsMPq擤ZWcaiE`V(+^8h%xz-YҖ.v ǴH?䫒68l&}7OTR- j|SIrޛ۔֫*K@bح4AY D+aJ8'3KǍш~fm%)U"YOO0Ir NmnŠ=œ7G?)'#^Rbr @g;Jpy HWuofBQg/$@ɀaѸzD>~|r¬CĪwM/|豈~K-ƀIJO'A ȊakK2#1Ê&Xi͊)Ãƿ=|\ ̙楫[("\ [էX)5i^ .ٞkT-ssFLHeljZk ~Mc+ 4hk +|5oDo>DĦӡ}Epfp6fZU&WZivN~wdh0|GpõE?tfLMCq$\97y|YL^]1Եϖq_9ĈT55iEz~u}yuwyRkd}^;ZRd~pMw/BďhiYe5ljLhpRL9idaΓ&-J`574mUivoDLi\ Yi3Fq}.>lX9S 1#gI|qwO;%q}5)zawqX!eGI0+HHhț5 )Mu}3Vt#zӑ /htI;qKKV t٩m%&f-c-o X$9(H.`>ڤ3{*-+_`~28Ù7^F10 I/q{Na p>δ[r,hȽQZX5`d\j/_~ egioT#9YtKiGsAG^ƘX}*g(>7ϱS8&m3KxH Y.~L|zŭ;p瓭ُU=A}g$N/*Ӝwu ,Gxq}jydr2QdZ6;wo40L8l9է$U{ɡN,&êfW٪Lu@:TNeպ8sCF&EYVkF; K\y@En^ @(۝֛4V '6 HtIfɟ_fv;lq Cq`O r^Q`PuEM\\%vGK[| nUu{r}[0LA<"g&0,)ȼBa s<~a&x3$Ŝ!ۈrf6 ˂)vaޛ/-2y~plbbY$9-hTf#- !7v5"^9PoOW};K;2F꽕6z'x̙uZܢˍ2VbBv^\Y<\/,zg*5jҡjp /Q"A (_r-L ΜL&`Gcxʾvh2ZH ml -qZTnOG%لgF=#(sSyھHVEp_Z"4 ;RĿ_YI'U} kqPw\&Yl!oQH?\7׸7es&+ӃG`͍ɂ;YCsnkz)NIJdNuK .LAY>Gl&Avwsrz~ۏWWg-`f?D& .,\6iA3OsT%ibM5ۂ6򎫷0Pb[[f)¦hdmQAcY\*HiR3Yݖ=loMzb̲(d\o,]V,x $,ԕ0.1F8l%T3%қd} EY,c/5ft1aSiMpf~L=F98r|jsՄ}x hCLH}o^]|9.n'07Z9܊ay3Qg9ygSH)z%T;D#\x>7?t3<Ѩ'0YiIEܘo@ U ?i+j%#*.VL<ߨ-cr0uI,+7%A0F3h&0 7:a$'@rkdd"Q3Fuƨ)UǠZ(>=}!HփKNsGO\s͊Fo?ޮVM D@RgDkk32VNlu+{|j2z*s±587ى;}rS*|>7O;_UZҚiٖ!a;y0tRq9hHd<&v@axRMts{kK0㖍&&]fe;Ǽkhhc9{ "=s[)!u 8ZEsw1C17PU(E>A1D,;34`Q9.Z3)'v FVv>n;Z0rcѣR* ]MAηg{xU7ɐh&]2M(tԎY Pknc>$F.>H|R^-^ZGj %2GhB~nց^$p-hդ*d9dLs[M $n%  CR_KI} "R&&=| M׏0mY3mdHm@Ls J'1Ih5YQB~znf$3N>' 㝧/!^ m]IעsbbKx%lɡ4̊SFx1NYQٞ/ C#L' 8rυ{ ^!]İX9u>3qNX[}bQͮNT<Ÿ8΄ Bo WTпba #矉H򵠣 y]9w'G b ZPR=w#AhIm9A2Pٔ{.'4@M8 ܈닦@fs<`GPwuk9lͰDeML:oܛqOavDӥW>.۲J{=F$744 fjۙ+u4ky/ʿ9;NowMN(NoچN-s4&8hoN [իu.!qò&&NC%6!)i7_Coܜi̵=bg5[qK2LJN( o9#V>FNM'Ǣ̐F:)P K.&OuN4&xf^ˢK;_.jLk4Nrܡ:e6I HΕ \a!StLB=Wj0Zƣ<|T> 5,64|sљVAd6ާ?K?( TG0 wGFâVӑ3=hJ~ }o<4?Vz;Ruib@mz}-"G+uT6I%\ע:{ *ZTU۴ dx:=9Zl6A0`ax )ɂțPDfox/j6En$k_ˑ?FCqQuKX8%I=9?W!Q}yuvMFRL^l Av~ājnmA$a㭶jr ] ,I2*ՁpTU@%R.?&ļoJbB&[=kCc3Yo)=F91ςɊRJ7 aہ͌[:*C$5U@0= 9i \xO$L4FW72 mֶrW|J+ΎzA8_ϕL1Daԙ}}d\L[b@'"OHc5*I5c7Ѽ!=廴x$YW_K]Rf% &l*fzt0[2(Tu)n{)UKo @)%3nL$qX`P+l9|̓orڼFՅc]m+6L'f5HpPx:pYn]= !Y^^ hBbUV+LBCVrRLq"fzwi_d+aG3Js,Ŝ'q 'pAS,Vu]!hGx=#?>/W/W_/k.앮C:q,3:~•xztۋJ]Kf AmcۏB֟ nqKTDǩRnZ MYa_j7r ( ȬbPc꒶_! #q&lif Tx+ƠD߇gr}<!}[>J8 ivTQ*Cqiv%?TR-iq6[fGRLK]4U-%Յ\˥Qz=/ofR=ȵZ}1'cBmz;)VhP$ݸpD PInmKkV8ecdzoSϩWN2~d4ScZ'r_No8 )fgz|԰))eg &O؞ވ8z._}e+ Iy$k/J ⳴sIZ}u4:gB]%K=Gύ{AsppbKe;7D_,^q\b6|W[Ipuzqk(luE%mS:V8kl [ pU j6G {v*/<(7Mu5ia7DyMV윘MkŽ|f4bQ5{yy1㘤H3o!(.j[֍PQ5}nT4e-b5RtٖUi~$8q6qdI@ǹʠ塔GT(Ƨi@qí4$},bsL2L//sՙhQ:kޗs i?_Ϡk0>7Ԛ/6[ǒXMd}i( ƆE'^(]|/ʺM -Kȑ^ G+\QKgp![, Ks`HxN0c>3c1ML/l8jԀؗH/T~>Dŀ8kji嘄N߸ > ԭ9Dvdh֟M*ku5VFWh>m2a\Nmh5GH%Utf I:)wP@{@I">c1-pi#,39Elp.Ky ys҄i7@$G1 R9g j>6zioQN.òSd һ7"8KaA0 0N=USʌ5{I$}f?mm1FtBҤ%lc B] aީd(Da̻AfqFh;+رޝ,S7.@$[o*V(ڄLҫ8QՕ] C&T&i[dL zSUZBn3e]&JyoNGCWsߴn2y:5+ :N8 6 ^C!3ZTe4ϵeCBhq\t޷8B~s1=-pfQ`xǗ?'DB˽&٥Ir]R#whepĉL#I O_Y!֋V _GOՀ,I(<~_WI!&!@)2GJyRr4Z]1.LtfЦ3tٸm!F]bN>bzF5}؃ CTȖ@˺ٕ$m*H냀#DO Kt3R-Iα\3~3׺$~\E2zP?z U+xES\Զ ]~:G3`2*n:oXutԀMXZ6(PDJN.QEh:9 + %Ǩkڼdz:3+nWCfJLsZف 8*9MQ-l"Q@4Vމ~<a# ?p:,IHr瓏^<~А,J>NOij6,%A*- *b0JS/jyV(* y!.n:^IdN?wZ؇BxZ]pv80p+Zk@ˣ h[DTo(F"El[>8e^0t)=M`%yeF%FT]D%'Xfڥlf,`N5K.j6C11OiXxF庼[cAsh\^op8 pÚM58N}Pu3T]S@ n]}cj[)M*R^mw#OiZKZ'\uEV?5ʸb.澀+gք+s@xt9t.@㴪tp7_M7!pa]:y ΰaԡf $H{FKjYs{,pk),RcXZ2Q@$$di{r6W6 ?k{GeeŰv^DD0uH>k"=km3a}W8yI}b%]͍$ 5d,z4rݲsIO*ռPۋ缓K?AuӓAPp3N>t[꣛KqY#'nz%Ǵ+ڥ?f.\qr d~ i Qe<񬠮kLA D⇼&Ú< $;\~P@2'+!8gWQg$6?vc@7v,sM2]fyFtԉ#sI-8,GgHglWA;2"vٽ5_fሙ -i^x󧲚}zmLF->˔Ke(dxf79\P?itbSCK jq_V+HV$AV%Ŏ m QJMrBu 'mijk<-iRT{X'Oxp9+CF$Ge4cV['J Ȇ扨oR߾6/>fn?veGnP۵aKa%MM?n-9I0rߝs;Z;nI̛{4z WЇq=|u{nT˚OjLe?ԦlXdLvjvWPNx5 u@%I3M5ؤ q/40qgkiO$Uل}ĖGf^رЂa v-xPnYCdR=k|POq+6' ú2d "Ͷ=e䏰{jBfh [J1nA–nijFx Ѹ3X.*c@#k)eBK[ lJ[^k:!@, .QKICx$\SIR{#n q&ehƾO*^ %PIou5ɜL4$[)=X*LfJIܡLjѪIP%ÌXAL>ߖjY}~{`&. Y1g] ɲTBn`9[M9\5bsң2CW5 Z"yj|%݌[9K/j tdvaBwI4D ,}Fu)%b1'=2>-SRUܬuVzxjZlO+.z`fʪ0kZ#G04^iV NEpOleL'jsWc+o!fgY5' -ZVI3`f  okA7tQ$D)hyury̥=h$6.`XT0Yԏ9)w+IϷ_At!lT/-#}Pw:A{%^5̌g?G> #&aZyX״wJك3uEKB2Z@?$\N, Ӣs7ɑ fBbvwBj+>T`G CKL`6;ϓ)M3|N ^\;ONm4AY׌[\nb)k;~FNn)gfm*-Q&se{s7R=+|:-3^[ߩh {īR鹼_6Oqi5A콿/` !puOַ#o"}K7 H=5!6XN)!:򬋃"᧿WwNcFLEe@ka!t<(u1pWިcmVˠ2W:pڌOp1%ڢ˔h6)nFixj,I{Hz /늞uBܙgܶI<i~wh\$ +=/`E{j#7?!91E5_(Ym6zyTt33O\k+f0Vlihnl+H*}],q~t+0AhL Ii194ĽD2xtq]?w- _k" !qn, UZq_B:`Q{!7dw H~b:7˿[[ nE:ucf6*O슀A6]Aq$P@nN-uUdg8fJbeE QymV֭QT'UemnMd`t;dG4P`u3@Y=H8fWGp>v1s њW TES9m k"͊99a'ˑ;<fZ(^~%_@\x^t(x+[^LkIP1ȚbiٌUZT{^L:a[rT>kҝ$d3061Eo~ZƷo\+|=|͢V5̆<^v>O?XK9tw:en4қsp {p ʤJEO 0?Ajaԙ =a)N={^xWm Sl$`1oyc2 $Z8251*y-c4' ]kV6gݚݨޒͱ(ȶ䜴ʑEIΞ`%3&R/exjmF2TI\'eS+K }1.>%5[,R-Ҫ+pfHk3XO $uX?l0z| +!ܴ+Ah7_L`f z|VgF124Fvy=ŃW1]u#0}3hÖ-2b7%inE(aɚ\nYԒZ΍QNLf^ikdr{ *Ekf:UpYeY{y5rDQX+S1[v7U7L;yʑo/qTX 3-$c0" 7)xMrqS [C41T"u 3 QI d7ǤEf#ToPx`LiO f7"ʑP 6o=S}L0h,Nۿ~|qɿpoR3&ӊ{7DQG:ѺB䪒'?)]8)7_z}Oޜ~bFH" 9ӵשbVG Wk uN >j{.w5 :jyJ(yq9&]?2 *SbKv/ yQ _[/Q֏^2%}'WD&0*T(UʼnuVk{v^Omtpm֌skΎQUKC2-R BDzqxmANeJ~Ae&l x[J UHM xKjgR 9kE^vSK[TSҵkCYbJa`j*Eԗ !5T7w|] cn$13FÅS'ξڞbsD8٫@^~m6I_;꣚:(F6$C,IlΙ G󰽹hj~ y!f8Ya1.~tU$Q7JF‘;3JxBoYaft:j]_R =z.Ovߍ( KH-7T;2Mr)* 4 u)hqH]NW71Dl(uӷ/W*fO$*;9^=YZ!V&cTQ\߃'3b?~Q[ѧߋ2.51mG`1N735[5Rq/@x^U--$c?8[G]/Zj}S6opHwOz>&eљ3Z!bى2idaMЅ?\_ٻ2LhvsL8J1*%lgMB& t0rCfI7J޲Yt`W%S3.~l>/LRTsNw&}bҟ$GEGM"`۲"2.jeȗ@Sgw[M (U$A6W xHo")'<$F-[-<-iiѺ<2v ]N+!g[ʣ.0@)M9ѴBԟӄ FFؘ6BO}J#6 A}Vyva/zqlI)Ϸ|%kbMaӄuSm93 Um>k 0<Zc6= O $n6jO]p甔Eް:gMP =3BDX%'Oy=!SoD}*ƺ~ , 7H2XLRO`~""r]pqT4uDNӧixP[zLu@[] c ;^1Y\uj/2 #[X!Uy)zʼnѰD`Sqcu=\ZԔ|Mbu{f=R6 mw% Z}RۮeATp0 7݉[̓/_%g,I'W:Gstdf?3jou㊣.)0>Ӻ +ykrbfd#e+[s{X60,n>`nޅs Jm3u^Q.YR3Ʒ0}6<#'F*LCC~ď` }CI|G0쵃<>nT;{wtfӌ-uщ`"j$8򹾹:o?p#4/QiZLM3xÞبl(1&"j( aAtQTzf8D4%"_411),5L{=xxxECpCp'/qTW@xn6+Lml UP&Լ9k{< [*W87(|~s뿿p֟˻ mTzM.jh5/OԭA8ssh=31 ;nH.L:vu׹יNj1kGaXgͰA‰$Z&iK]F~i3)S9r\4mn-z$j`*&ޕt- l5ݻ uxgҢszE◯wN1zleT):|JRM F&-T{hIjVը"$ҮF7JD^HH^si&W `䣲a7΁uIW(k倍f; AeK\ז.=\zٗD?*dGAG{jI'ańf"i4Tj#)lj[DIX"q'g҈jp1Z1~Q'(TU zxvZJ/pWfi@Dz,]G4z tDdwR*KĈTg2"z0 R %1{lm_+9p" *C$s>a eZˆ#N(mGMEuӟ *.# ?'dF,\H8CiaB֌ SnI[u_diߩٺq,-lLhr楩B%Z#ج^Í3. b t" ZCȩK8 و, ;'̢A!%gYr={}%4e4z$ȆТ{d(KA# 䊒u.[Mm /8\>. pgFMEy|꦳q3t2I0 rvF:7=pT )̝J M{' H |9',E*}fUeWϧZZܕ-khse4:$cDTa1Pc?|GpfAjOS\o8c,n:)e4,PQ*9G0\n*b S̋_g92j9.GtFVYG{6]Ba2"wnV=#\W []6L& ٖҾŴ@U7XdJͤ0XBS'r/6V07%tqGv"S@XʶJ>x,DS洗 {)vs>j瞣 .DʑYOIpa% <TAG'6l9Hc[rTǬp $ҖevY}]{W Ic|RiȘ&*Ql<=FL-QXY-cytUj~5~Saװ85cTT \ S9*JaVP@=UGb8TSo;Q?9=Q5X. ]Nrd$rﴸg.Zf<ҐZCLG =g*E*%0UM o& 4 ^I7BdT)c43zsBlv%F+l@О~ms`i> MwbiyC9L:/4SD"sUAa#Mb_ :޼+/Pvf"~ٙk[Ҕ ? u̕ R4B]S燛[gFF3zg}J[m1n^yt$올īO,N<-KFdCA}?~'kC;K>m2,nѭӇcT'Rfz;[ H.xmC$?_{\OiBWF{l/=ɚw+B=eS=1Ū.2_+^\S6[3,ށaG#c#5v0F#3W3J([#-; i9j@ޜ~nwk4ݸwHKqJ ̜3|LgJ bJA'h0_k i]_^^_yR =qt͟iWբz%6I:z4$Pa %4g_j:>H4*w6UX [< D4/`"^֘5@%&&؍I[א]eHvcmDgXL I){y2.YԏB*fT='SaOj?,$5Xlaˤg@M_R:GE}3W S2M61>o¶4dQ 5h6om|e,K1{e`ۛ)$Ԙ:4׵RyCYF= K5)P7N)IYXI@N_՟CL}ك tQi 3a=_-faW3a1P-yXr2wpr b-pq2>G!"m免fɚ`ci^1(ۅps} Ş|{!_4ƫ\zc47[EF>P)+<ľ!a71ԧe-xD_{ hfLCG7)-oBKiF 8EׂbMfDVz!vVk/Aۥɼ5jݤtƧjnmjJ(--gh9c.Q1( `[Jex3 CḾ+eEqILGI=Vp0 M1) M2՛b]D֞1I)Am T6,3|DKd*4L]U8+Zhf6%6A8UhM3)r;8]X*pK _ȬVKb-}ԝp4*@;r_ 괾FJyO/_AU=ϸS x8Ri2uH"6-\ag\UR7'#i)>=qV7R$[k(X" ` bϱ`K8!q. gt..y衡g>y4.@/h7 t#xg2RBf"΁wszyQkgqYTOĺk[^D\fr1O\':̮Bϖ%@9w@ʟ$ 8VW(CA3Q trOiɯxy ݔK694L֛UXF1Y¸; F OSg\e7jS[4 3~g|jga¿O;%sʪýo/-nn/޷~uﲃH^h ݥtl% lo1/m?%[fiՠqf+R̹JLVq9+YLbU̜%OYm2Ļl[a@kxxwBYmgtal`<7)cT2pRuC$^>w-H41jiI֯Qk<.)HKJ?i6dgW.>+=%DIa29}311iH{Μ^^!y0$Rd%dUNW\*dE; )}K0>, 切T2+bXe%x~nz@lKz1Qal0%/?A53YWP6vN9WKnVdj3v4Cnncv0p9dUShA#fFA-[̭iƺBPEG!~Ƭ)514k-3^$j:m2 a0]g[Q|C90Q9rٖب}E2,W4ݒ?Hs5v/+K[YȾf qԕl7td/"1GlkMf+$*UevRwY7H:k>Pf%dޣ\z~l,)aFy'qD*^wPhd({c֕jnŌWy`ь>$TZiiW BSm@Oؑ_+Nu ,HKwPi6>rQbIƞYL4xUG+2ʛ ۺ(gF[-d G7hqSsSo_jr*ZސhIɺT2f1#mnN\|k&7l2iyΘ/BhTk"űL !N(U$O#XviptFAQUN&^pŔ˴JkgVJ>8E - >nTʹ 9IUmҩl:)֢ױkP;cO;-x{Rݽy; i<{qHBjӡFIP}8OcTqRQכhւK>fjoa.G-ۋgp)WZ}xz{K?܊9enG۳_ou1=ouśylIiPEƟ5] I8fU H&LR c$#hv:-e1Gi_CsBi!CJ IDúMK/o|/+ '_qȆd0}ʐ!{\mt OkE˄܉{H,{pvcl]8_Ay6˟P k_.w_?9iTcRaot p4s\?`X&ךI9:ʹL$<,Ȉ2$ K I =d|ҐrS׷>>ȓ VQ 3I Xhj·%cVKyCqeSX]q+z8y]7+} SHVS؈F.[Wg_Wg&߁k>W0 gO ߚF}, qO!A10}øߟВ!IFKKc4)#D2j?B.[8Hi-07}^ߥ^ę"NYAim .'zQKy;_lN5os^Ah:*5:@dΐq ޴fF̌7"UL0 HgOnseбMjLJ;w9&w7?+ӘX a'ٷY2A;0DЬXX(B-^O_N?#Ű]ɖ3TJH?$zuT)TpnH\$DhTDYXG1pl'$mT3ki %E; sK*M!Yfxz{/|j?znFc6ݝ@ٗ+?2UX-aLj𓩡 >l0/P;Q Vͻ^Oxgk=W<$M⧦0VlY\nɴMcRV5`*hɺ- T9e /.#O{$tW&'ͧs){WYMFwAQH2oYWDwQPoM}wHqr['Ifđ):abm)'QBA#àP5CKѭz5Udž+ -Wwif TɥӪi:-,(&ud'qܻ(A`)JMaPޗ L V]NgH/̃Bvc9z gl\lHoa_}ɬS[U A( mdx-J+5Kpεmzw{qǞ|r[١j-WZңPu (WKATqBKdm(+AYl~Ɔ fWg;S11tf $[ͬiI%[R+ۮ?x&ǷP'v(`7Ԫ2<vF 2enRpUjoCFL;\)/T #oݵ.?~{dHGǤڪrsm1D?ϫr|kd`[Gf.rň̉n>ޘT0\8CrBv%-8Z`DD-6!P^ .d3h2vLH^i>lvkQ+)[m. "$|Q,)<$'=*/%)A4זf[^<_z!c,%8jUripҼRKeM3;afB:SǢNp_q 9%F $JK뫲JJ?eSen̴U\!o js DLd0 &2H>Sue ᳛7.(Øz<٢M6>ÇTQAJ "Җj_ά}1_nl»\o1NG лI%ֳ%$UXJNKU5@UfePws񲱽MFnSE(|kAȻ)cSэ8ξ;x.ٖ/fhO,Au%GK<3>?idttJd6<0TNC]5sai:Xid$+ʘԃJNfd7ƃc;uz8łw* .뻿^~_k~,\r"v%OY;BW72^ pVX>|S3c?E#K܂ ]8SUslޭXulHC6{?7JbhаyHV F(ҝ>A6g{]H<*^Py8wP z4 10)RwйݐIϰ2)"Ė*fB&) #$iPn;`)ͽ9ZC 4y] 6^‘5qU g$zG35GraH0PK֕mr X SeN5iM$sPM۰2xU0@=n4qpTyG{ǹw.23YXre]y=kBBQܰ{0zdwIIR%#-3pA^;Z|^GyL1qcUk0a(>!Qs9u;r+l7`HQF <7˕rUYa,}dƷG e*1b2=@,f|/pte5t5;\]258Z1W-F'&zOT\c?K<vdF>8+M޲F]EdPk] Xt!tҘ; T]8%0;]wՐ3flul:#GV{\45C:0TtXw3Do|dy&M8>Yg.qʽݘߖzZ0T~usq0\ }P~|oW`λxC/z9v &2@qM(ER6ctq R]'EfT )0#[@?C;";/fIC7V{:}>Ú#eכU?i+UD5ޭ͝c/EY*炯*&1\Zԫ݀ iiEIgZft6MdMt]ݹ}LQ 뜧1M Qrħ1Gw`hKoLmN0A.{(>Oގ*N2ᗁSl&y9Ԇ|̵`EJg"\w9=uD M٨YqZwWJD1*(dC]_At4cIN]p;8c3V u43;rziYkMf?.e鑙0|M bgՓ {!QgeCBW{}V_xrW|Tw5EpICJv$~•dUey]|pBϨĬ¿*;y8en$jXP&b@՛WKjd3PR@9aư Ld}(Ok] e[ex]ͅ3Y+)$sM}{ϗs}Lj\qVLifgsYd9!nse[^yn ?]8Yr| NCX#wDfs'dL+5sVO9 6BɈ@atȨ!6WF'{yFFob{0,\~Di]KbpVD`ڎd~OP|-?3=Cz$iLF_̮1:<(v}92?+/t\7᧐ s;erIo$Hps3 5YƋ#U_5NhYEU]Ǭ_ 둏=5y6B:]fo8f\V[>>Hv(] &?w:kV\i-Y{*8 ]N |Zn7lƮpishڴJ*!ag6V",iU=kTtw]iuQVs Nj:tykF{^;k+{m‚G5o|m@t×qhr!c ! B6)ko/:z, î k0t:fϞx#uEȅWXdvTHNT<}UhIAa]ŌHA0koXExQ8Vng F #i&>fIgs3e8 X!+#O(0#$(?3)mԊ[2|mӅ;^w܃bjs.;, 3ft_'Oᔱ0٤Fu ,5LC*LJJyIyf]O4O)m-WI,M* 6Ռ).ŵԐU߷b4HZi~:F O M&6"hM|d{\ѕs<_ cz 㽣};r}|xݤ7O۞K֞ H zDVCWR]ϱ`gD[-j j2:gr qH!J'ۆER﨩SCiY#!i\G }3t3dedh ||+7V^lbw#?IAu+ٶ˷Vf>C^ewk"p<$cF/fչ"Y4!:z(`dh޾Mx%3ȯ|<ЮoO}%X-5_[QucqzK&1-5Hk=I*O횇 ~HEiQEWbM*}˿m_߶ K\#x5QB+IVM^[i^Uac͏ىrEeAcVL`rPNWfD~ tH8$o7پPGYo=zѾC$O4FS]f Ƃ|C0c$;d/ȂåX%?ÏV@Lܓה%;;6]t,_$uCsװEH]c>OV{{/ ׈i.oqc\kqEvq꠶ HX7!'rCH¢7 $.q([(aSxsn+^nʍQ I1?@93j 0`FJYddij*hk!oxvudN`H-ZfٷrdNLc'l7{iت|ѽ8gN[tz8:|^54Hv8;Pd$Õ/͙g僛 ?_;(8dA9/'SwmGmXKԨ/ȏs yd z/2=pK֍2@Sg CL1J-a #@rLs0x#/>l] àh9I6U ۨpȖn'ȉlbA-BQht0+vQOQ/{ R=Z:u9…fefᗝY3A[hE8~hCzKJ\N 0 @Bb}PT2yT^^=إ~8PWp-IЙ ǖP@/ ~I2/Ws͊-V ڣ6-\].LcJBcCbQui N[izW9Nbڮ]YvUYqhb6iūpA/PK``|I;9#9!PU;/A[~DCc(ۇ+އf98?T-H$m>]G&V`DZ\Kun`ɥIdTݬSj2q% ƢO_zfֻ6-c(Cj?6cYyigREf ;kt$pR&+![O{2ܒZ Πq]>c€S)h?N)k&M|a7]?cdUa@ԷO/i;1smEV{ :hKðyH"L0‹aB昀vNj[s(z*OA:^< ϧ./ױ)uXҿԨ04h ʤ #2r2H,*rtb ӧ7Ѽe-ws(ohlׁ^.`6?tmyF ,5#G8)!V2`(ssnOg^>~y!m^ N9{Fdl>F-bIssrΊȍӤ?}Ҡ8g8ҙ0 P=!D$lc^n_g7+Y$I{aa\%Q´/H\Ԑ>5SGijB_Ϩ0AfJI?F7MA D1LV3''/+wW =U>‚hY.}x#dJlΛTA2_0G DROE " s\OKZ˞ԛ5 _]c{oN6M,s9CLܩe+; w>?B/z0cG$+ӧ̺li Uk%pUC]p)æ0-y7J3*R^60e[7o򹼰-7Z5 iidᠷ!6u@W-FK3XB։o.}n~Ńiwݮ<_{}}Fϕ%w 06 `<3c"ȽlWmݻE_p; ޯN+ɘ@nX_pM59+|'~9N]!u0~r>ugK$%c:FYsA{ڜ@ƯY>-k㈱.(BNGV9dpCDQu^lIeMBqrCwֿF\ggyW9",fD m2Yg-AG\rCXyZv~0c䊊d X6ncrΐńl6bb$TY0 )gܿF&у{ xd yʕ0N krŞ*JlLhBKj%qu^lG˞p cIn#z=F;g Ψ0tZWuf}p|;n{]`HT$=5n7rӠuc^f87N&jAK{  W4;zaw,Z>3P ,}m>K_N?,9mH{d*Cph? 8F/sݶi@6$0˄7 *v*A(ƻyisQi?xNV̢;\ȯhfou:7bt,6)# c6ѠIuW×.K#NA^a-K8>6qx@_;RO߃xk_~6rě^!%a$[rz,0"O`FGk-#\خ'_9tֳ6ϱ9JE^gOÔd$+;]O׎Ӈ{DQۗFoXYs;8r̽m6_;(2` \O\w2 %:ArՕX `Y|h!$xX *e!d#Cw3't:%0938?OAq~LFvŬ,p0"hk+;==slexntGN˴mRtۇAjZ%ƀ-l-V.WtMu}c(&W&aSQ!𰹳TXtA;K`j`RS a@Af~0^ _Z<>Nͯ-OE<6W$A ŸX{豽 9)SB^B;ki|͝% D k!*N$ۋR$xz5õ,v`b)^ 9©!]y "%)Nxt/<ռf/:FGSⅪVNJ%Ae89"Euj@nH3xOXA`/%$Ԓvϯ_?:9-`s=;fNTtI.H 웮GEmu$s2NJ&755&dOyG9~?<ɽX=dxK֭:΋Hwr0t@ݕ60KP:u5m{U@g8zyPgob9X'q.柢 XyN~wtf#L.3AFYJ'Ej#U:Xarh6Ѭ&BM#J*|V/dsPs0^?Y<~`H722Tsm Q]<{mg5eba7<ɉa<x=oOdH3nuNQHvPDB9E -mIh"rnb28lc8>8^ĵfif,-nDϬw9e8ǙTQ=d 2ݏ'Z'6y&) pn "vac˦C$Z>jZrTb$A!ޢ]\qgX9H;RMp#El,v]n^{.zg4AZa;Yxgo_nHb=Â/Y霁6 y'QCF2xzTƆHd&=ɿ[tn&A-a=h]i/Yjcpb`axrIa1 \Ty MTF=i( `PA+;=<Ý)IE2I;xY͈G wbn%U]7s/Z£&lrLB+ju<^7Z۱j<)itSr)&n#_j腓z^}1;{ߒLJ4!FOGy_=[OAEM)8WVA{%98!(t;KB V [OaNjYGG RɝEL*GIՙ:M#k8so-/պ]4+<Ɵ!C1'+%7n]5C_QAj$ҩwޣn&_-pwwKJe0`-j{=/b>HNb_IDTYr d.^0cklLOˑy׌p͈Th,GXc5wg&05N, 1^:|X9#ysa ]poBiCrdʑ^Ƕ|N'/ag"[BgQk1(C 8zyj',Veq9fN:: vN&NA%I'pM] XjN{踩t ==hR?mvH~Mpi2Nπ^*i8qazJ2<0eѪ;;2BѰl3{f\ "bV]ȰZ)dvM0?+NI_DAo~}3INv21YOަ7t3t8 i9N^`}xQPDģwYJs-XZh`b-t^ Gr<<30wg_X۳y]8>5t#ÀXG#貝'zNMI9>>R/WqԣW2Z8;Nrl, `ru-;t'xxÝKȇ!oi9V)nR^sxx(X+K@#P7ܖ5>:AfCҢ94InTgY-#Hy_%}Y,3tvBX("9*ՒNwf: U4ǯ /+wJ/Z!Y9 )NDK@d33gƛbO>xHeoʌ&0hLˈK ͬjvٚ{sg]^WtKPs v/E#[\=)ͲqwHV*aݢP(gnOfx\K- 7]I{z`y|xP׻)%BǯmkV[:MW)إN4?oVo)0CRM1|8ZSۂ_Yf2jտmݜ^ܚHJ%]SRxSuuDo 챒F+ uGIdu^V6u͘ך24VO#?yL7k\KNGqC כ@`su:lOSpy+Ԣ݊Ns& S0H?2 )=X"{qfE -pˌKN8 mTROMP*j|g(M}Tɹl(*; $9|"+2h_Ш\K+l F|SG{ͼ?1=K9@UL벽@!1j =p=:WvϠY8czAY.OyeuzIL3(eqPUxJϟyNCaNCdW!bUzrql2%6"^_Ӥu>@ޖ)+~/OGabO3#a] ӵ_ُEq㝝ݙge;R+#`(:Bv A7/+Aͥ+ldڅ˹`G;; jP܂T Y2_!ڥ+ӫy4N6j<)m^28b@U!]/-HǛك( D@`$_ŽWv)50+uh2VPz`P{{n|EA*5^ʦjdHz!ޚzM#}k*2Nײ7.rڏ twEiޯ4$Ez?E*M%Dpb)L8$KvlyޢA6e+N1 -Qm,a1lPy˥볱@ s$TatQm{0H_n;5?B OX=04q@gOwZ^ HGuh:8~dtkM/ a}0\8988Ik̼wM t nc6V5g  }x7W8fVn-Ǒf0>HN&ԳLCJ5 Cg'Q?\lݴn/UpsDUj Sgo|vgqh a |=d{%/R$x)#D$Ґ :\ 'VNu]XwЍuf/rtx|3A2P/w_?1Md4ѭXILѝ9qpKj/9զaµI bqww ! L7bʨ6K$6|g+ufQ!5fF0q';28$4& E>q.SܜB7l%'V=.+Eņ2r}DƟmw-;T'$33>,o=5i@0ȅ}W;5'I6Z~t.& M1Z g*`{}nx 2am/%QOPW*Kkzo/;+X3et." K+ V4l C@4xIb|#ip4uhFi2Uw,]9puXO >xM[ͽw +H0[|;9RN<8 Kʑh0gGe-&VpXKJ\3<:a*RYu+Xh{gٛg*A3^ּRM®N4ꬼ nBwL;--N*EJ؁5( hܝ,ԥdt9=4]ޡ>gkkoE5Q7VTY+_i^m6ءCe[tw3c%qV![-Ϯ3%&'j^6TK|UፊȂOW{bTEOlbUn3F)6XZAGRWH5zag3]UhB 6z95;P8!pgli 75T22Y i~;ZANYL D7Reժcv$gd+v7|0xyDz^F.~ve8 |.br^)SY|hŦcF(5wp C&׭~LD r|Oҭa'GOWXDSCMhRfYb: pm[6 B"IРq ӧ2wƙۜI)*qU*=XMЛxYLVL!hu/[2`^b)tO_.J]U`y-[験{&7g<*t~173te`-.v7'RNmebf]_㏣:knUͱ !Wh(?\DV&vo!${n5p sGKI$#KQ*,nAEqƴ|}W[bk zNF1),Oͦ2< =#VOÎzn?u 6!'($ySWtȀk +7 86=(Ia<Ѭp&]\Pߛ|gUf:'yL30:¸@;YsMǘԚ62SCmG6 \E}mؾ]ܘ!S2ʄtz?$W[`P ;![."s6&x8q2 QH3^MҀщѲr)["Iᦫ|m\J^U;׏ B~ IIkꈁQ[c@G\ i:d(`LGYHWb`$ܑΠ aÐ4S|Z9Q9)GFn< IS[n,{)cJ-FJ-,2b LJE"Է\hsbՎ뒚Z*R!5*~hɯgZsq=v/n_tͧtj}:J Jj?B&bomp]!A~q}{Ezg3 7FԗL^D:_qiSM̈́LV+ǃqz_Ig z(ƴ?Mͨ=,^]$ FYxI`I:g|5RB,n dμe6~4 H)m:b}NɗzUf d~ UװTsB@`*\{QmzUXe U'В=hgekV"NJwtn#z2$7~ JE-KRD> J $, ;B4u4|8A1 d @g;Jk3=QP+ltM7@! j⥖\p0l1z:G/*rX^qbD=@ptK춳xf^ ǒ"ИQotc)\b8*/%l$ϡQxkJк=DmY1LsT~IPnAI,fxN?sߵK] @ά7]}B?{U}y8!&O=ӫ%sM]p^eqns-ːexZSx5:i,@@ Vpq]>F N|OQ{,X̗V0@滈4t`l2q @{XX&BJk)I[|P#{t1#-MlO c94rN%aP TrP+h^x.IZ R/bD*@^x_n}zc"򱶮o0u8fsm>ҿ |GKhIf d;ź\h=-Kc|ɦGcbG/Rfzdǹx5|teK&iOkAX#rLx}N*gBS8&0KxH Y.~L y^=N26G!V7bec{?β2j:y #<:߷<29( f2-iۭ;7F%̲P 0N0[lbtF) M''Yʔɤ㰮U?c=Sk=PN"=`& z])#S"~L/X}M~dI4tZQoo76oNMZ`3{QJ$6 )E҇wܧ7xvkiqCڳY 4ݢtN9C5-?e2mȗ;Lªb[w_3B/uByDeD*ycq\zpm4$.e>XrDSyYFfY8RRp58iҢv#=^d-H$Hg>K zFP=̵|őGzUVM,~k-*jP+2KpYl\;8G„Ut1Ț WLdK+8,' lJlaIܫq[JM6Ƿ?H 77#5\ S0ȶ''\hYE٣o<N']\x}H\(!|P,= ~{?qj oZeAcz?ogbGʸتM6mF68 1hl9knÊ_%M|&olmV]0E!_zaeM92 l&u'K3[;~1J Gz:q2 c(*&=s0<&sS5%yi[ne;y;?ړh0iXÕ* N!%:ovNiEPR4ñhFarPkM*T9KKr(I4B=5_@N9u H0"޶v3w7ASKYZ<憯rs8Gh^4Mn2$IL +]:}B#Zۘ\ !I!h^Ln{׫?j85|JilƀQRԗ9C3T[l^$p-ѪEǭM(Ɍ9ũ7B&iȞlC8*0鱴xoa"BFw$g#Ώ|::ÄR@Ph˖i+/Fb$P@m<ɁORОB!dGvS5#%d= bz=X<4Id=`f=} Yë ʜŞp?bKpy%|ɡ4̚619sl:8)f=o=>2+>P~$`iEUP؍xrni讀|ɺzd~%zʬҤ]xDBjp+?,4 Uʖ* ]%U+2S(/?3kLq֏-`PW+s.'.yͪ ƺV -6m\qzFχń @*kDČ:c JD!M8ҷSęul`KLE\̡8iuvG QIH38D`xQbZ٢Z1 Y;K/K< ]]|{Zeplя^z[S@[$)HK 3dWrGKt*5 - G:+hɘ?d}6>Z;u'd {|޽0_=%f,8r,;ay3}op4akƖ"p8=O5JC+-gY B',"iEk1-):mB]ڤ9` Y3]"];yX5i%t d._ڵ  nFm>?Գ /ۺno{wx0"^|Sk7 G*?8SdV#7ʓ7iawXQ_ #V#݅3(n&\mB };NJ-_pAlXy0¨R146EPGgWǶ顇Ɂwq?uI/To+JIYepsfLLb+,A4bP],$Ks``<-|`bu?7#=$Eލ{c2fkJezN,$o^B0J0P,lXT&jlW[+6L3;bWҩYSy*TZ~f^#0Z K: _ hphQ&%`9n߶"γZ!#L-4[;1{uj5GЪJR 3d?)Ӎ?,oe>š),Wz;*ۄD둨;PKdrQK s55AҔΡńCd.4Vo6dR-DhV$tHbY޹%&*G_*5ܮn˖>C}N.zDk 95V,S[CoIH„Ka63-8\\`Kz^g2W6<s}r 5pWP2%P5]10f54z)%Mvm^[^RN{DJ~\7LLo U\%Ԃ|1Җ*@&\LQf,FLrF U&PrD}y,elV"`Ui%b<@d"s6 ӂηoø@LE@[/splXe KgRXwy<$"og kY\Ld I^:OTO)3Y&%2W^pRd`!.E3L^c BC DcjTd(Q0fg0AfqFhN8+ԭcF %~,26a'iT eҠa=d:##m^'TیLT֞ޥnC{{>hy_ɸ,HM8  H8F/F*g4?oSBh t8b[M󘮖e ( N0U:@p kHI"a٥Ir]ػTirT I O_Y!ƿ^Y"7QHyA$Ed/Ly2r4Z]1cuMvKetٺm!FZ[bA>bx=0 ə + QȖP+ZJ6uedဣc))'q&i3R=IĹ6fPˣ(`u)b'd޲'%/U9  Wm9Xr(X͛mFZy\vo+ T*8ԗ㶙 oáˎRNG-؄Z a]+M=.!QEh: +ߞ %Pdm^*L]ʪ!3ӜVvAJ%- WA+n dc X_6CG݇2 D$}v[xӥ%7U_14d2ӕFV=6XY[ROdPҊ-, 4%8O 2dMGN/}+/ٗ+4@ӭ,+Zk@C `í°' #RO#=v?82w?rEIzFʌRJ6*Nh̴vybqs2-f^jQWOEs*H3j|'E&3nbzKok tp*Ak8n]{ǤN0nHzJ5CȤGz՗Oj#WP{zE=1MҺhRcYbpl9J~sD&5';ЧXz:;#ݾuNnBIا% :z~( :=sKh9,pz4kf6AD-KVU w>w2&͝U+ 1xT̳bvkE"L/RVNƵ1y`~+ ̔LҔ>=HZ kvr&| qݲsjǸսPˣOG]~Tq^8/F jГE` c丌-&)R,]#rwЩb5=ɵ'GpDׄ2[l.ԡHd}r=M 64%rmVuyRDIvX~P@r''evH9sʵgeSNl?~Δ>޸xvخrM2]fyF{:ő٤obKy)b&%34H-]FI5&tJ\e4Q4G62<5+ɬUH\o]O+9VĊgiI}Ϸ:5L{^CmTt.EO!ZM^4l:IP4OU|m[1;]%[o+gHpg[͒lvLBV@/^9vJ@m|UVN" cN1Ap師-1XKՙ`,$*)xкÂl m|-Cpհ$nTM8<3 1^WA;r"=57OXbWe6"Ž_1x%˔2_4`xfM49\Po?YhlbܤsGS z/d Wj+A$,j0xBDV\E}Ws[Zbcښ͋qTG*Wcs,Nj'$]?!14pph٨Sz8̟VL4jkOi:="@%3^i_ݝӛ@x~Jc2lud׹iO/( <'ݙ;kܱEKΛ{4f WЋ꿸}P]vi0I)Tg},wi*죣x +DQZj 'εؔu/40qgkiWUق}<رưI i;.J&[irWg͐u{܊MI9±nn,$Yf҆(GmO8o#ޠ.ƸzGekz1 opxôUdvuxW uk_E?|o?;@ ҄pX2Ε:&moSZxtBDY\t\>$t5W+F8Yo qakң;e)f nKu6$'Jr_ީ`uiɐ%ӁK)(M(ݼ=%94mNR_Mq3 6+iS& g؝ G7RY ozYழf+@Ac֕7r3x[@[|_3 -K-+ۤypn ME5"ڱə:F9J\'u\wA$J ;5c>G0tPtAgf&JP1U O7si#&~^vA{{|Ϗ9D0t'!K;PIA7K˲(ܕ9J0a۔tLZ(AvT3d?fa C|ݓ~-{dDK/H,Lvq'lttl*]3l kAgOYN6jt{K '.|T-۵[M=,ϧu5So_(؏uiڔ! c?PO7#MCbUwsaE^ԘWw`ӎ.b?+"lAV ֽK娌e:ہߨ12W\JGTRA֌MyifQ\TpymDKJA;Ohe k74ܤ3]c(9RӠ=j`|`ŃranT8%U(TUnAF d- ))zV|گ*^t[P#/*~dfxBy=cu?9kx2.y.].bL{B)ƞ [=: ~Q^(w&E_46jؚ07颎YW]!tqAѨyI).夈g4`{!H,& ߢhfH}Zn8k!- [ȎM8#-afI=_!]$Vͫ%[@7+'1o9FzwwOGfQ\:.ـRj<-e\NʹwjxajI,jc+'^+=not`e7>+ z]wSa=,fDQ9J[Փg%R}=0LRDtɎL>[/%,͡~A Ddӝʧ&$kRte]zA-֤v\Zg6r)qöԂ%7[$E ƀRCt& ث֋oLj#ژ6\{jO'/ʒa\UbqpbMrRk^T[)g6!Nxt#oiv@8{| )ڴt6; 37L{[t[-fNi%[bPmx?6s!swmcFz3)bA0@'B˳>D?]gWNcALd@ka!kjnf+H)}S,qyt+0Ah\ )i15v5d2DteЌn"4lVi9>B8ܨ]8-;t~ c:7>ȟ;;ot/Bfkf*8Gw !|#Nvsd)Szybқ\ML}6 )3mKYPQܟ@7khŖ̏yezHb5Óŏ#?(YI9/f0$'Y;=H9fdXTGpU1 q1ҳlR+ UG$=V o}XQ0b<GJH΁aJPL:+[7Z\s)Py 㐵KŎYtيUZ{^̑ W-5*-EOi}2 ofY0chȄV3NhEj, <6:Şg-͜y3;f7b\9_"cs8Ue C`#;fs 0?@jW^kt2׸_/ߝ HBc +& k Dʴu=Hj藽Өt͓3clB?ݗl[SS6dsuK mpNYԢФf<`%+fFG@kT*+5IRGq-VHEzAi8H.xHBlջ4lXr*ׂ -1^p=8:<:=e% v`C/̈?P杆ޮtlq!UWDÈTn4}9`΃k1[T[(JX|RP˵1ʉɬ+7yDU-iP)];'Q7fe2Lb* aSΤuO>Rc6Θ_!9t[yP{rt!Bʬ8vzLv;UE pЛ32"t7(e< 0&*B:qMhHR5j^ҡtvS/%|/gg(Z3Cxh|6]. V߫q&\҉v n$b4VAs*q%nv\t81wOK4>CG+j̵>w5 {}< <tFgS_2 /UzJĖ-Df+΋">f ~wOl9dJ '+"R[䔪Ķ~yv/6F6`mތѹʵf'ҐLTA=QQ0n϶wq pWjb+(ZB𶞙@@@k܋NMY.1MJes:* *E4$!5T?nwb} nTxSiRgoWmO192@6'?HMUTYTk1Cv0 )tU)lΙ Gsߣ}{*Y›lOOqy{ܨ Gh])7~(wOz9J˪;љ3Z!icxf{Vd1çxц]܂>{_~KMԯ`g S8]6FŚLkPoHn?Z9"3zҭ,a1"U̽/^)EtYzLe cT | N{݋&\"`J*+-oٕVeN2ҋy遤p΅"7Uv2x%^*mFuKْu|+UZ&Gmah"G}|R. ۪94C4(gi##lOuJ#毶ۯYS5]؍E`RJx޴T a]>ЖA|+-I7 |k\`x% :g#mz@7  Kl4~$ÞSRÚ%7dj]8DUCtxLynJ9`?Q=2YN2K|/Dɷu]Sԗ7c9,ט.oyhH2hLάHe!aC0)bQ@+pm]E"K7pq(TfĆS[ԗ:Ӻ~K4dXlXlLWAU#{P!YU|ND\t\RW"8n!A{U5iTgQSpl,?+5X-샵v='ZaAv'|='I_o,1];_dqxtړwTMuLưoW#]Z?9S3U<\E=MfQ2T|K \{dr`H|Z*uCa>F?dku#sݨ, ViLӊ-k3hE@0xX7d_CgD&Dy*`Remɛ !?A5dC <}iG, yR q-4v&4ƴ#,5IàxRmeKr(H7owTN>׬\߈J?{&&A {~nZQq74yh}rutDΚVeDVBzm;,[4-}=RU7kɃ/mU),aY$\/낄IO+=xUőV:SVLТJ#0 8{Ώe.!7|kai5{RVfMj{]944zDnIю>|v|ǐE&ȠO#}n4Uɘyϛ8Zn& . #he*߸A7-1o3TeE;J Ľx}t^o_cW⩍8'_%XrA`5lYoTNR5 r =44Xf"b(#=X0\X;2"fW\,Ӗse#{[M=Fsp`ŵ|^JZ9`c'@I-mtų ;gǃ[Oǒ`ᗊ4yܠӷoCpY1̓VOÌ D+Y|F/#lK8CDIzX"J˖ 1YDY^'?|K'$JFjUƨ9}Z֋VX3Y= H{YTJxsB/Oqj8\-H\5y'k-hȏ3{DK&Pԫc8r/, d Q!LpKi6M6jBtざ+-P.u_/TI4b Ev %`Ie-huQQ!!'ӡÊDN]4Hi9yGe V8- iɱ)V&{x#cM .{l$KЁͦcsqpEMKdžnЋ SFu#ڨ`a<˧-ɍI!qnۜ&L*;,ܹ@A~O㈜0ަK/%Uaؾa{kikWM˺e͚m&qNAEC/kH uG#|i{(Jԁ t ?kYjt6jȎ2[˳/฻[]8#sRL/}[_.U"8v6[92GTDyuyuAap{qx|{U'b-*>^PVv[w=)ue2⏿ҮJFylBJ,8EÈL*l>Gha^W2ȯP0^f+!BUԳ1nFLz L^i3&dtF~ܛD튣_N nN ̜^ %tf;l|H-1Kg62K@k:MO/.B@z?vv]&06۠ -NCUBtUTreUgYi\p%7cSMȋE&YJjX7\fAQDn0PZ^Ŀlav{^[_Q;Mͼh<#`J+?l%'(FV9Y6xrZ!%|tIҭZlWW7Ḇ).e}Piȸ&zD|z[b*òPf6 i]^B5L7+Ty5|:f*uΠJ𢅹2Αf#y>Sm8AM-^你C>% SYAmV P0ʍLm,܆hYg>?p|X1<,6}@[K*_wN}oi9N$Ӂ ?8$h/*˕ZsAOp'NxչņkKhʢS70 xf;~N{9hvdzqf e/~o7I{`({_+ @_ 1x|"$f1{ ^iYs}0w%0BEσp6ZC]4NNN=)FX K؞8lfQx8ӫ%/' ՐXFiB_Ոj:V$UqhjqOSBYxA.J}ሦ$6]+6艠)v#~RR Ү "F] 5*J+O8ȯ*%^O8Nc"J%8I~6 dEJM#t <f"9r(1oz{0]|FLNW3`[iلPq)jq][ o \~K Ge`[*$nԘÒ:471 cqzA50ƐwRȓ0o0;8_%9!?wMKAr|yO&Ҭ_?ҿ=N|͇ W2_i‚E3*1wdq*";@3k㑍 ˓=+?hGg#x~aQAġD_KXe(ݽ7h//q~KY‘SȨi:0LYgFT6 pp!c֕r/_ +Kx_O.=T;"+S5jjgN➆Nc,7"\k{[/!1S7ZhU&k ͌k"8`h-̀S$i -7ּI!h>MdZ/lirf=] mQҙm*mVm/@ eE}W2Mf<"Vc'"l\Ql6D*, 5fcDXM w*|P 4]#MREm7h~Y @dʼ*,.Fu;ep`iuӄt)!dA@l 9vEmnfa>Ovd&^K=$"@̅ϭš~,}cX?g^}ӏ@\Р4D$u3W8@DYnbxD$&M˒P8:yӡe,R6_{ 'uӃ9gS}"Ӻ#&L m&)9CYZIl%[⓺=_@dH$!MHb&((ϻb9 @Ta~&YshL9m1H.{0) %Soa : <"֖z>0K H"nkNVHR2X?gj2"W1U{wtzEu/.E9s𫿔Qzm<߮漺 ZL=Ga6!>tcy0 L< f(7 r$b4>#Ft\G-I2WOz m56`9FΧE9%?;P8;0m9g YJ J{T^/aTaŔ1 _ &͑8iѯ:gmU8wO0Z8TX<`'DV4Fo«7!9ݒFȤflfY1lmn@ l>߷e]Fi\FcTc;7PG/]uw=Oywr/{)jul\<VqU<9RdeZ2MqXsXi kk$E2,< ׳ə(x@+cEn}3n"8DVg vtƔ զUhEȻ-9A˜u{G_y|ɍgvZtX fm[8>Shézlo eϚk(ӜSQXUۼipge ,zN &^pŕhJk`m#= ( r6zHpit{gz}>8Ee8, 6ʧ0nA!ub.FcI4t Q#lq2%b/݊h;";3ޛ2TV=V2.A6kis .əgBCubjy]?67xme2NB0sāuX* FI0G߳V:Յ3b-vxga#K~'ʻ^^'jԑ1xCJ4"MoifNI&VBͮGFAQ85a޼E\r4iJV/|ܻ;LVqaqy[N^T]W1uYP櫳'5#5?+]M4M xx0*n8Sff-S; i:bEz/m}|T^4!놹l$Oޢ=Ν_]wn=R%Ox; -' ZHٶ|:i<6!s'0__ 3N`ꉓ6ڦ&XPXT̲I 9hR=f•<Ӓ+q GU4uJff-[B '[4ɠ%XHXw"#֣XWo-PϩlbklI@ȿѴ%VFM/(IK@vG@VXu1[ОٙY So}YN9ѓVzVN>Ri1ט,=I=1J 5H>NKZ=+nk|sIUIQgtx AV7X&W("&)pD,C./ɢkaqԞx{tEN" W9|j,[䐇 z2X%@ p @0!HFB*8ajQYuũȠ-fZ+G]<3!sGTbg#`@ڕe!\$3mÉ&GMASԇzoW=c KoKX7ߧް8 Yߛޫ|,zaB1Ŏ[}Gg0%޽Π*Yhr&DeO%[j/bq(R󋳫ࢻwudST_8赆|TX`,/+-qi Ώà}YAj i$t-2'ØH5ZAgW.,20܆PlPR1TtVsf<$q'9=P[]-Ҭ_~bF/F8M Mm8% .멳jE, Z5U )ˣѝrdPI6iXGf8mzW$Y04k[{Kǡ9ϲ7x[Mk\x7A<"ӖWV$K7 *M{*:Xs_qp3꧎cAfX) xכhRZ(Yb>3{ѐ[] / mP&0C'xPl,`TF;B~.LJ&D"m1zġz6À 1KxO>zc+VA!ЭD8c̚1){1^;W/JFmv=56 -kƽ 񫾈 i17Gy4I!^ ,[dV(-+vj Hg;>;„ƃ&Ukiv\L8@߯Mb"oliiPN^DHbԔvAY;O<-7G|6m<zOoORˆkZb_2K2x+$Ii(س-MlFZ(UyG< ~+2jEJ$CFZFp*[ 2 S0\5IU19{&P5ZYͣ>ZT?PQOulҭg] 2kl<_OLjt dE^z) yЃw=ndUXukjj0?$#rpL#4˦>_\!%b5 lms^M9B*MK/DsiZx;EĎa9)m1%}q!W[POWk%D̈́~U{D-y\s龺Myá<v_Nd&_?^uXU-RZ35>:>.|u~޽ qƥ=.w|h4u=0g ֚E9;X&:>-Ȍ;2%0KMILR2?vmJ9h]Bj _T`ULZ|ܥpI9|;zUPxWʯ ܎'O"kf ~m&ftfl6?[uL9:^/N?w/u9/@A}$L|s$/"2FYH=-0{s-S8}d4*ih~u\Qhibaό2%LsL-K={6>oސ|{Oo?2p6\?~`NbNbYCimM.p$V 9kTq;WǗ,\U>3L2Q#٬cfI ORXy-ٍ)_0qEEu&LOd3[p_~gkv}ӎ8z"Co  [ RC9^fyq%$50Y q-m?f&\VN 03n~Nc *oD;[y r"T^s.YuPgx0h]O5[ŦP)9 ,Ti{X)TpaXBtMgH"ABG1Ksv7I{g= aFvUa |)M#0l3=ʼn^q͏ooއ&Py; On.Z&}LSms̘:x"PsKECXo-`9YLJ [ގHpXL &R|ejj4%dF(B5.WW~YO4&Sӈ06lY0܂c^)p,KÒd]Ԥkj sUDi:n; Hmjw k( sw, FM!e&koi0'Ґ$E~kmH&H Sl`]S6K5YNb*qöG W)C8JӮzp$˵/pG Ee3uzuZYXL@qO/B{X*5aڬYp7n3w:#J 5zΝ!Aqxț;0>V~|0/@3F_58%vxݽnݑ՟1]}^\|9mq, " ՝"~-jNnZ8_k Swrx|{ݡj]SN*շ+@{a Ϲ-L y j{믐N9`v_6Yf_aL:pci?o@1>(EV-E3(fbzhe٧㣏~qb ͤ}*$BvV۰2R]H$(hFVp}.ubz=5ѝp5lB_B]^vO>hA֬zS6oX9oE S’Ȯ'/@aܑ,PH׽ 2bp*iBTZr`"4>u͂"h}989%ʋX&sy|8#cD b0''I0o;1op`ImDEjoS:GeWH3ͣ_闖k죻qXҀn D,:p.e#2Ɖ&sinwi(bs1iwrȉ5tƉ23 n r ͟ !sAZčRyQDd ҰO@;=.@ !Ԁh.kK먗f -`f{hyK4 ,k{-._z$cǸXhg4UVћAӈ㤸RKe ʙxa h^W.6-c" Uw!4b%Q2_^7* meAz˲U o jR Bؽ,d2. tq) > lshvI9:z_~ыU^Ѣ̃֟`?J{+~U8fHk]ChO ]̨,e}h.'{jޫݚT 6"4 nԢ_4Hɋ¬CEw8.ǰ qurSN5_>l RJPV#cuf., ~%r]l '4VEz*L% (#򁎔D͛7e`8$n0*}6]7˼W?zv^+is_~ל^`ΦBw5ٿ,J>ql.g~7?Kd$72Q=g^||#j݊ZuU^b=O .Q- !^lq NXjk˺ۭ{|8rB5caW Kީӳ?NώcTw?RJ'+BVzpo.*eκ4-N2c<>"HoXǘxdOfpІH\FuXm5dUH!^sbhytnCU͈$ POݏB&hDZXe"y[v;=qhXk\cI$r:/a%-fףSj(Ɩp}g q{YZ~ Aeb.e3$(Yvf i'G],Rw@ZQkjeDm_68S9 &Y8ZĎgT[mgtr0շ|2T8.{ ;nI4d֤5޼A=zK쪌| g}^uM@ˆ (V-{ s)uJ$Yzc4 ~л׋Pz_v\qc5kUϟ9qNzl\GOٿذEyzE]7zɘt:{ʕw*SY&V&Ge)_022=gAY,\P l05jpv:te*3'g_N!]MECxڱ8V㨶ּe?Amv2\!bYc=D<0|N7נ^=Zg3d %Sa&yj񁍦5uFӗ?̿9~Cw|l M1g6 ʾݸZڽWz), xP}k0Вepվص-X'$u̅~'^r'\h{%1Êd(.$TD 5>h;;޾٫FΙwnID)0>3cWݫTҶ-iKrUw PElĚ=N|$E@eq *#rBZV*kUF72$dTQZft6MZdMt]ݹCfZeym9O c&(UuiVśVi/d /U#i^5+߈~Rn6`_IZK\O|¥_o~K^UZs[{{;2լU܂4#{sʽ4;N{ a݊xoG' E[IZ]<^RHԆ|b`}Yh+BLI`TbVYC_:T_\V G7;*cb5hD{y0:q88ymo9RLE>ߙT:R7aư Ld}O3VQo~~6P9k ݙ>οjE`,L! W5~,^_tgqeXZqH4ô|]&ˀ!?ך+EՅ(Y56d@5r%2È[A~?OshPmD2`N,aEpxj5#2joԵ^޶Jl7/bN,ދ\:x)~NQY"E:T[NYl3^#`椒b]c(uxzrye\WJ?;sݔl)] RTA_*bM{@UWӹs>5".H@cI%_J=ޞ<@(Hd&k./MQZ\JW6u֬JP{*8 ]U,,y^nح%n؂]ZM)iVRIyjqƮolsk% -8{-ngha 4U1W'{xA u"G?bT1 _eXvDai _|cqͤUb(mY-XI4ΜH"lHߏC+$l3yjEFJ%}P2f|~ 3WTNf^{nx"~'Et?,zwnm@tr)Ny1e֐cnaW|o:AgO<͜x_w,«^,S0؇&((}e0Zt8av"u\̉c|*]E;"Fx4uL z3Py+s JcN[ XU@蕙' y h9H;B^VQd0t[g zpދW66Awqeˢc}* SL:lTgZ4$S@Ru£NjCT&C t=<%)\%Z'4Uuɸ7TsFnlPCf|OӉ$JVKO%14؈5ivɜAS+kowen |e{GUU<r}Bxݤ4=!\=JGyIŭ$gZcoΈ[z7M : ae>gVvpH R'ۆ﨩SCz'31dNǓyɁ${D7.VRo,Pcm9)*Ze$sR3׭d.2k,x /k"pB;NT{@0Ԉ.Bc2@~TY6^[8HvacGYf}Td&Õ/CwK-4~w0c㠓s^:OwmGmXKh(ȏ+[NH2%H7N =|J%놿 PTaȠ!kvX(3!/ Ƌ?[aPw FrMe~Uz8{6|.$r[ɬ,rpMR1a! (4:[bYqQ_K#.ѷZ-+^ת\Ǵש{.4+3?4 j/JˇR8dʬ49hd+l'u{h/cPPkZ/TcwhK \;i>)j\q9R{EAi{搟L\?x̉i\RhB_?4dy]1mЮ,x`V^=B&xY2HĴBU<ƗoYUW݂n@濿V1U a:@xlJ>`>l5Q#MH%؂DrͰgȯ>\F3ZW\ ͜fV㴂K;Z^ }2t,[4~z]ޖ lg˘ʐ%ZOuw:^o9BLBNC1N ~de42g5b]pÊ{o,?|nj3L]3' 5cr*)uwP/ E33TJaPKztF =b58fjη=0lR."#}X{zq h4VCLSyZFrxiPk<}FU 3UT ([_fo@0'&'_[Wn..?4?zB3ZТei.8M5-Xdsބ7RIE$~`-Iu>agТ gq?+(6q=-ikǘ=i0k( 3A BG-y;(hb[&`" ZÞpC/dq8"ؘ>ơOhv9Y;,,9L堓zk6 ӒwH9Y>"nSȞa 0m4>tYx{s;j8ﶊd[A:ؖp XBO։o.}n>? ESF;΢8Y+ oV-e aWirn CWLJ{i[n7i9(a%mK1IFd+^>v c u0~r>ů9ΰ"E\О69kǾ6E^H &ǖ dh1u]\+K '7t׋se_cMhכhMYU{fQB5*:mk7$K0}Lh8OPm 02(&tfшʊ PgZRNo뛫YxGqg@C&eS)hjaT-V)jqC^o8xHڇ$C>SZ .XlFeVdf9'@trEb_'AtbA"nko-v 73)_;ɰ7A4G:2 y7֠Au[Zڜ %Ke N6jtuVBd U+Za{^!%NFzVpYa蠝_\h[w.iW{]`HT$=]lorQW$4,pnN&uD5èK{ oЁiR w8Fn$Y2, FR^`k^ SВVnF#SxFEgd(Hʁc2M, ^;R-$|hQ;Ҭ)1WOQ2~Wn{g,zI@~E Sf˧}S\%<"Sf#23ڙ>PI:=f[-}6]uXT7KbF A^a-[p}"7O8 ( "TPϵkm]m!1 5 ,5.%a$0ŕ}YaE}>A&_[sﭱ]WO!mj7$Q0e5H`Z.$'=[="{ΨK1~ċvdpn֖&kA?8@` ;X2qZ'.NtAn " Ň&B U㕾Ңշ,ldJX>x{Ac-j. #sQQ1)HΟ8v/k8,ZorxkϽfr>[م"]QjvI7-ep)_z Z-Էۃf<9$6iYHBؚ_q* ?íEuEu|JBLjR! "L{a$i3TG^zS|u{<*sC]+2tsrLƞW-u6fa=h]i/!۵,xcr*pCN ,rVPm:n/86 {P( h@+;=<ة)F E2wn3ψG w1Z%3?گ_{h %_i^m/hv,$m |YŴ^)9v1&&n$Pp5HN.Bо睊_peGGUϟr=h&MSa-şD "Ubоj{C܃%+gdɽݣ})a`g&Q'wZ εطꦗjqîګ>_ 17Ү{!M(J(e3Siprޣvn%p%Y2BKO 0zbLdm/I6eP܋@  ,09I$bި;GV3ƦEzP>y͸Y 'ЌHIl<A8Bޞ84prcI=ɋXQ UTW^޾ӅiC*fʑ^ñөjsҝȖfu.I)tuVj3G\+p*GF{$b,n O= (};^hK񮨹upުCR2ї3c*ȤcSkE @mB; GFpg, ]N{B1ŤMĜP? t\X<{tzz-5x%4{>أ}OpteNπ/}4)0=ko%..d?V;2BѰl3{f\ "2V=ZS5!8Fb% z.N&&[qwg7ݑl`3L{ /?jԼ\] j<Ǖ}kj¹;K`Yid 6؄7ww[Gr#v0ÛݲH7gw'n7xxٷ/ CbTOe;;bJXGݛ#rΒz fYC 3L\osI?Cz"0DcqM=!ao tlw?2HGcNd@E-Mr Ze7@NK?9r*SiϲyXn tjoGX [d(vL|ztXH"fӝN9<Dq/ ~Cʝ :$p9">)0?̻; 9'!%#-ŕiYǛ2窉L8@2"怙5m.ދ.NAt:xNE*EN"[Qee<3SSFx`~Rp6D tPϱ"󞋯cD3Qބ8*Wm+-W5OQ+z^'\tM-&sR;GGmyby(*XTP=XCsZ農+lN>ccyٰg9g.Ys@fAzC%FaE#p%&uul̑~TF`~FŃywxg=Zps(DKRҩhn8EQ{oH}Ս}Ȝz4+0tSu& $ ̳_F4.-$uwecrd5_xooío9kjH/1* ^g!.1.Gw/.p0HB{b@YDt0_?x ;Cm22g_lڢHǛ6ZT5n4gP!`ihM`qřIK*ηȭ^f\zt4Ỷ0KTT uxs%My}T\v"rPO$}+uY+rD+"_ԨK+ل7NG^ã?C1=KP5u^ P!JcS|'I9cz7r, ĻuyHL$/MENPSzsH4:Djg5?ғ+'p؈Һ+_E|-)+a(/HvXWG*7cQ\qxggwyxَx!bs5]3W!\t]B="w9LB'cD[mΟ9p~LRؗmzyWne8L;i-fzb]fߓǾx#|*is`s|¢5Y@kTthAVB:i`2$DPwZf-n5a<#_n6d  rlK>MfEd}I Ji)Ql4CL:-P6ckcV^m U9+N._||.|q{zqs|n9m$Ò$=7-f>;; r܂T"Y)QeRh>߲,rL:%b;tXrq.yדʸs9WqKb_Z4.7([-D@%.h$Kt;ک5t]6J/p; Cs1j[fid6eP p<%0{=z[Gq:eo\&e+ 2ZN\wj!'le|~̌,>݃]߀ްEW,ܼ:"+_߲BMi/Y}w-NIaf(}X_?5iP`_U=jfԜ$٠BjE;l .&M2Z$g*`{}nxgd0Ӵ1ޘD=CU,kEzo/ÝX3 2:Xz’BCcuZ;" pros> i;M(P~U;3B+cW8^Iv+y ]RArZy뜏q7GRI[;âúy c*pvEqΎ6hl8mwDҞ+wGG0LF*8-^`Ҏmm,{L0Ewg ^ּMȒXO'8 n@\xE+ ?J d/zEU8X͹v'K:u)al+!]do4M׆KSFPgkkoE5Q766P{G.KCZAn͎fZb]H:&Δ 0hBt5#{):)׺ _>, %*'hg6'vXݍ{bJd<Ŧ,Vg1*83FG˛:%bw^4*{We.w8[ϓӻ.< ?]~T%W2,&uFlv'j ϗnۏ[vU ȰK@ Rpulm/̡qqLHSai1˃)4FJYvޑ`FϿŽr#Ε"+:8hb3y.QIL+e~*<ޞǻVl:fbs7CNj|I˔pI}-qߖIB90r˧MvV &_I.lb:*`X\S_yUvT.TcR _uwph[-iJ;6 F~!'ԔrK'g%MXy"f6,i7-;H;yN?iyNnW ~gJl1/а9cĝa ЦY"b#=T?[ڽݽ-҉aOnn'xpu=7da6$B_RIаqJO! ?eH IɷyU㪄 9Uzs&1^Ԋx%vSKlQ]1'Hɥ{LpQj O2aVǣnכKb;FTHC׿0~4A]>nn83nuPZm+c|MX:=7u{_ /R' ߜZڽ /t-XB}dd)Kz-h(92+,;_.}U-k zENFqSatۧz:F$ҍwîQO$m'UʥՒItϺmKոj_xTu{ψ)(iM11 hX3q6a1Ml&tbZ_"LZɥhcv$kZ;\)id,wdkbLB'b1/;dBR|0}fkY͇][#^{)~ ~vY꡵F&pj E=LjX.iiFMP̌0.6:RC>R<{MuS]%$~OGƻ"h <4g&nMR_~i-q@|e"~>:h?Å$px??rs を.4qJQ5{zuyws󗻋+9a /3K@; -/}V0|y |mFibtı`IVMEx)*ǮHSOBx!(i-Y.3 tGNN!hmr)ǚve DjRʩj2:t{9uڴYfV`P(ӽ#.J _) y0iaH)>V:Q=)GrFn!J 3}snQ6?$_HiXf"0+k{/k4}8= ٬K`@JiKE`C^柢UIv,`R jV|SYrޛmJUa%?3VqxpqҋD+AN8'sDO!y$ϗ,KRD> %a*L;B4ʾ==N'o~PNFR_HϚwƕ.BQf!C5- &J^jIπaѸ“zD>|tr¬ CM/BLˁ~J-FI<ñc0ęr<@E$gOg}6kqAmh(%}$OG [?ȊakK2/b,?5MʚS99Mx{~~~>f3+WBQhS173G9,xUb'_djp\S*WlYۜ *)mpq CڣQ`O r^QhPwEM/\\%qGK[|1ܪb+{r}[0LA"!g&0,)ȼBa S: ~DAgtd!(ڈrf6h&p^]_z~:E R\n@8J[cadgplQ}=K&3iލT6Ypei 2$ge]q΢R0r*O70{ղȵn+\k[~ ?ZA_߯,OF@ݵz_w\&YlGoaL?\4WozqoBloq[LMVO$w5\ S1HNu˘\h%}|e3 ڴۿ~:)$K`(~~m/P{ԘŤ6ǕO5u(' /_ T{2 p@|sՌ}x !&$_>7_..>g7MA֟O..7bF `ŭǟ "p )EDh /Ǜ "QO4 gAVZ?!47䂹!uO*Zy'3 9v䈊;/6t@\3y. f]R(H X nZaI0#mDlB1.H!uw×lݞ_?skTgZRyJa>0jji=$o5y-d>׬hoj@D !3pF.?!og9kXO-[SWmt.B8&fr5;qgyԦ#ppw{w=Ocfڰbeb` d(=Tl8c} ct@axRMt {kK0a.[/pXΞxHaVfAH="ω=~-M%yHg$\s3kNmb"rl:8IfEe{*<"?FN2TuqT+^ CarZc}f0Ir"s ;]|?p<' &ǻ3N{KʄD@qW8LD]ڹ;Q=kCc3Yo)<}}&1/ɊRJ7 aہ͌*X:*C$5U@0=9i \xO$L4FW72 mѶrW|J+QΎz @8 ¯؊eIvϕL1Dqҙ}V}dTN[b@w'"OHc5*Ihžs]ZwF̄N /w񞎶5JM^qf[/`|5.Dj[!q>4"D]gA[JAVs "\YX *(7J<߸jͰ2J$(d8dhn%''b6Aw7͗L|%Hx_RyB z;b5[CT7s;S|y3}rm …u(^'32yFgW/;bVP@/q{ ck,xfZ=IY@apHv1OLt.e?XWeVѤWHy WF ʾCKR~4_x2`|ƙ %Z5P->㵮1P_ Rmك+U: 8%vNPGHn[b!\PID le ffGH1t\Tz Kg?$yZi}~3{Q9я) =[[c!Cyfwi@rfӓږpFRV3 -JX5D+S|N2~d4Zi/73a~9t}~c>*zJJ,Ixw37'.-Wx٪>E uR.y#F˶{)Gcq0lV;Lk3d⮒%ƽ9Q8WM1w WV&6W/jk3 `8jSΪm ] Guak J!zXM(tN內I".ߚvCdΉ,(cN LΛ]ۇ$E  'E u/NoU7CEQ}C+'5[$jfֳ-I $8qqdI@ǹʠա¢&T|0ŧi@qí4$},r&eafWTL(VK9E4P_gPJ5yjMֱ"d72V,Y8aQ6ʂѳ׋0g5RCZ+r7:"(s@4ԓ2-)ܖVhm҂q04ќn4* %Mr+~?9L/:o'Zw-I>[77W2~3YS͎~K=CK p*\XJ"S5[L*\*W[.C`RAߎR7=AS|(V>'0*ޘd`쟍$h'+=T(|> nN.Ils~QFhR@VnY2E<N8>_ 0NT28 sǍ/$biq]D tzx̤#41s:`߷/#}( {/T~>&etjiDNt] @^I]< gZ]rQڄOL3;bwVS-PjzL54NH4I[ZN2釾9lOl}{L4k{/1[uƜZ qH ge9tFcd??8_'Y-MaAU&J-v=uJ}Ú|7$@ JS ň?\уƥjnOµF'~Dz`$0,[ɵ)()&*χJ ۲ph8QH~!$+T]M_4- zښY1)b5~ lhk,2jfc(bMn{]?b/& |X~Mb Y>ToRulX̦; T6/ ;1LU~col6`>Sq4aiK堍2&ꘌ9þh<12tû_nOθ̨[g/XJinSI[`$nϤg-QdB\8MOMx ˎN%CO̢e].mvy1gt;)~9J1uߘiKDrbŏM$SU]ٵjp=dKujEƤW?U%6S[&^kޥnt8P?z?Wy_)8M;\fECXgRrvgs b E12HXF\[6!HGeQ&(N?~*"e,;{29\Hh#]$%5{ЁVfWN$l9aubh0uX ȒIB#j)D"$(EhYTQ)oCjPaF+2ŘnL31Wn}=Ad쫓OX!}I@a;9 a⡣P7%#nvA&`JƤAXG*Y?γ|R0R-IαB3$duIb'$Ο'IF-6D9|U"7~R:[1T*⋦ܼmO+ N>9x~'Jgr"eT6S;tްȃMXZ6*QDJN\"4UlXcT6/^&5Lʪ06%9%U_`dEK[qA+w>O`niHÏ>%,+KD55>|<md_142ӓFZ5{` mI=qAJ+Ÿ* F758e^0t)=M`%yeF%FT]''Xfڥlf,`N5K.xTb"c Ұuyƈ"'7Q ҹlxF5}58NCPu3TBkwqx0t= 歂AO&`;Uݑ'n 4-ťu-zHQ>7ʸb.澀+gք+s@xt9t.A⴪tx7M71paE]:E ΰOqҡf $HFKjUs{,p4k),Rd.YWIH-7Sn{ܬjaI/א!VZ=A(-?'#u%~t%u<:VB o/>\_\N>1b> T\t@7RM=tC>h E]=rRrLr]c=)4@̯ Wx\M]fC vG)@$~XL9GU^%99^ᇔ3T8z,r |<~RBڍ>A2ّ_n2d &撪yVŚhCF#JHW(-]ƄYs6 HJ܍ihN3sbkG"T2R+יW~O+9VĊ*g&WN{ACmR-EO(BHKA+յ*ᇐ: _iu+mNe|BfwzrN/ɩm˞92mҎI5w_ХЉ~0vJ2i0[6ƓA"˜oM,\[J>p`-pPg B4 푖U)4Npdldq<6~-oAM`TbI/, ! ^ 8lJe 2 GnyI׉hr8x6$9xӌFm(-drR#'"tXN@kJKkk{kkcIjfӨ iI]u ][FZשi7G?(PYN3~wqǖZUvG-ysƓ *z/n4\nύjI)Tcmkw4ighz%(WPWMY4TSM^?@~A;^K|$&&<2{h+N-8$N^mْV5D9NV+ճF,bCqa|0 3=A!ZYCl[F7˨1.df&pieT$l>F6{ޮfwN$Ξv9U;@H҄pX"Ε<&m)mx,pD#%ᡒpL.$SKiN,p(No6ęG䅆 WE>57vB2Ǐx&(XB%Uo\njY9li, cInq;Su],c%S1('q*A&AqPT3z\ceC6t[!PAgƻã> ΛbWw4nʫȻ&dyǐu%X'>zR 5Һl{2G_pGFIOJ 6U_8(̖z-umHO0v3n,A|S5fґ!ۅ &XI(M(=TżB@lNiKUq b 6Y+i=肩m¬iҬf;0N:\ ZWpC85f]S0kNAZn͵lf2р.>_+^+ގo*GIb]R.C8FMK1{I$6.`XZԏ9)w+˃OAt!lԀ/-#}Pw>A{%^5~ *A}pG 8xj9b_fd\ v*[f5- Xjp9xEnR ̈́8:&N} ~h]|ّ~tHm)-&pZ⪘htttfpKYN6jtwK 'n?1nSkB]|Ε_ݴσB$xWHYMzU1 ~Ry4Uu59à5UUsuV~vt0D#~\&؂m"[/ze㨌eP?mԌ(U`G#R*U kd:is5YL0[yxPsZ:ԍrQg$ miyl0RB _|!%O 5NLWmw=U\/6ُ8j>4xPoqYz 6TheӾQsY{EfW/8|+ʝBLqfp,KltzS.SħNf*ޝ~2)Y_7+L$Zփ/pt Ո[JQJ#!(Kc5s 2IX^쏜tvi"(A+6)@˦JCPqWgZΤg:ŐV Kc~S Z&^ 5|h Nb{ M8ZݴqNV.ٿg^w.eI!d՟jӊW![;7-Q]`"aX*:AYA~(J ]d)朗U4LaIdؿW[ +d$KU Gv1]d<"$R{L]d.3 qT5Ug]4NK7%Ktdˢn:>Pp[OEMr)hchסN20c0WbV !׮`52ͺ mt4l/[ EmMj t1 tDj @F^2hɁlp?&Ȑ!t(l$;Vloj(+s!A,hZizPr'/1H74@ԍ@K2ـRjO n!\ R%R6|hXK)}JOmpop&1 =۵)rd^x3+{p8%flqIҤ?<%c@!zU3UxZh|&ɀMH!paUW8?W/>@yQvj5.ʫ~<ŭ<]%fGQ9WpzLA 0^[A8pZ-n "M 2 u21$(crHiH{3&d8pOSA3Na[ \E}M#  دYDjhEݜ\[zs뜫ɒ)$!qz  j7i+DZZbRd-SqeZTb5Ó (AAKQ" GF#zqԏ ̎1YXV'O}(b5s@rV^ūD$sr7N#wy*̴bI&u%J΁^JPL:\Wიtג cRiٌUZT{QNJ} W-9*=kӝ$d  ghX-zC ƵףpqG,jUl}ĪX,`8өrvsN)ޜNé&,(`%7V @`?3A&|0-x̗oNx_}1(NLƂ +& k Dtt=Hi菃ӨtՓ3cl4[ʶukjw~K6V7n s*&9{fmTD-fD#_59P%AsUM<.5Ǹl4ljG/C JEH6#mx`#3alշ4\rV<#$c"N‹g3},vZGʼPz:Og8frj'FYa{?hÖ-*bVxP"PdM.[qҒZ΍QNLf^ikdr{ *E3R*8ƬW9IU-^@9` Ns$oqX 3-$c0! 73)xM|qC[C4itcr3 ܩB4(<<-@fG(bPAIɀ1"='ݔV@FC-J2P_ξ17ʳӓZ3=Xl8 oէOWIL+],<ҙ.d4 Wθ9II9ޜ[x0|~r<<#;U5BRǷqgș N8>R\^c0# 1d>gS̀ްxQxY-O%ãH}tGL{ ms?J%8<ؒ"K@B^yx-bd|8dJ :^L>aTJnQ~2ڽ4 J=5SМujպHʵ{$]7l QZ/3wd6+STA= 5AiR\v9^İ dMܠ̽yV1{z'{Ceg8[4K+Jd*מYk{YsdƑX/_4jibF&_%c.51mG`1N73 [5Ri/N@x^W--$c?8[G]/Zz}S6opHwϔz9&eљ3Z!bGI2idaMЅ?\_*LdvsL8J1j%l5gzCtCkaԓJ޲YtdW%S.|d>/LRsNw&"KPd8HCcM/«˳O7MJrzm ȸh!_J݉n5)T\1-#Iw^H (~ZZx[R/a6uKYy|+eZWB#ζ04)U$]l[Da> MRN|9ѴB< FFؘޏbOCN#6}f45yva/8RjoMK X<æ ]Irfы#7I' |j V 0<Z#6= O $n6O]p甔Eް&MP =3BDXO{yO@^,^#gaG}>G1C*a<߉-%AidmZI+~sLgwX:Ǹ;%T4֍d%Km hXm2ATp0 7݉[̓/_%gl,W N V'vd8(~?3jouӚ(0>Ӻ +ykrbu7^'Y%ƇVp*H !챺*ldqy ڑ)EpœS@?}X|߅Gݻ.ehcg)RKdU,Nuڒ$;$A )`$#&N̫yYZkolP:1QQi}`irH`E 7U 7YJ3Ʒ^mx7G *O*LCC~`F7 Q,XM]<33VlQ_oӐNT F2C,Skᄥ}aFE\. TYfh}3ױm(1&"j( a tAOn=Us:D 4% ll/Z̘1!&?y7mn%x$jsTM+ J lrkHw7 4JE9vSIN1zJCa):.5bq!FGRU6jgIWF7Xoc( oE.(#a~:i`խdji|63KZ >V҆0ČLXBE{RVFM~{[940z-&I=<0; nEXq$7:hd}?zؐ3DoIY,Z i5YoX5lJ,Y*a44i3f1@Z \vDǓX-Jz gg*+ߵbF 3ӽ|σvߙז.Ѹ<b{ܹ/4Im.JP#OZ=g+&6QNRy21uh-W4iF*}<! Q9U V@D8y6wQt~H{\]ar$?ux2@@ʋڌh[+g12rv}_o^_<2LS/0Fؓܫ6bD[%/+cètQ1'[\ri#Q A7!瓋O'pV䈕OFp9 W/IY$ GA7MJx-z׿ O_8'6~Pƴѳ،jP;*<`np{RBǶfo D:/vOتrN4"/HN_cmacF5/MOf/_/nqEX]TcwiDNM(HtFeV{,R{%Z[Z׍VBSvHJBpl-#CYx0p$'Wt p9hbj-}YqY<6j\?S7 Ieõ6Ը·J'NaLRh"&w/A.̗τ#咀Ϭl?[[Uemn?Q$qJ/L>?j컏"H.;hZ'wU Rlןԁ SZg8,ށ}t6J23+7_O/e£!dLEM?x۾?^er٭N"2z"3EytC[_K똶4AZ|ٕ_1Wh Rdጱ(5}rvzyVzNrtS$:G j[o#%Z+@J>j"/9E]x}~CR`?X5RMz }=)9v= djJU'İi垬~6`$[|@0SLڇQ%Km{y^T,7!Q`y5GF "(t\x;,Rء5d3Z&'Q;Nqs]J܍Ct"X>"&3:7ihY4cȞ_|p9^y3o9pv=+#!.ǙOKI$0Wmzphȗnj E`df1'wd{,l88LUX[X/.B=z!?Z[.uv46NAZ|oR;*(rwȼ=hx<9Ǖ Wp3NLyrIB* hK4p!,NçSjWWԨaf3 WβKje2 n/ 3)Tuڴ5 'A :k56'$OAϹ}ܐrb cdkp+>rT'p $ҖevY}]{W Ic|RiȘ&*Ql<=FL-QDX-cӽwUg90=|5~Saװ85cTT \ S9*JaVgP@=UGb8TS 9=Q5X ]Nrd$rﴸg.Zf<ҐZCLG] =g&E*%0UM o& 4 ^I/BdT)C40zsB?m%F+l@О~ms`i_? MwliyC9L<+4zD"sUAa#Mb_ :^+Pv"~}֔)}N1@R(xV2jKѸ[hvyOqﮮ󋏗?9CP6!i)mŴ{yyDc jT$ۤ:I2Sܽor K0$Aoe9"@tyq^? qH^-vM@{D'knެ" MIN:<4zqMlHxFAuۏQg4u؎L\=(lŏy0:ä#zuߜ^iqoῑ 9gܩؕQŔnp B,vA8“bU퉣k,H{gm/-E+$NAԧ! S(\Jij &g܃,֤CC6:'da%acJnpJpBT1 ZY:dGBNgi4n|J~ W^ĪAaIT^*"3%@3kcZ>dx2BDj B51Wܼm0 xVYc(QmKK΋M#.r)!D@U煜|ຢ675q ]_ÐfSRE0s6s,}-f1&MzӮQYp0y!+ M4FG,/dYzI26TJ.G o/vaIg}:IWݣ? Å1WC{"ȹe)>%6E8UhM3+r;8]X*pK _ȬVKb-}ԝ.p4*@;r_ 괾FJy/_AU=ϸS y8Ri2u H"6-\ag\URW'#i)>=qV7R$[Ӊk(Z" ` bϱ`K$!q. gd>.P7CC|(§Y\^>րo6pG%3dz6Dg߬GefQ=nyqy<%r2 >[Y>)> TR$(n'X)&_ [bR%"*tSN.=8c0ZokVaE Zd  $H2U߾ÈD"Sՠ"_i v.1U3!aWhB/ٍ40DPHmЧlQ% 9[1kf!YE8mѷ Wـ1l}?vi"gJ qN=j*,/~ܐ08eX1;5nLG#ɬ2#{%:SGچPŁk,֋, |-r!r0|^y X$8:&1 cۍ1@?LG`ֈm5 `ds4+(1J,1qa/'m?Ͽܶ|r>OAwr/c~:6^F柒-3ts\i̗;29EQV @JG3,jKDL7wc|Ѥ!C~" n3MVuxђ\KT7lLٷ+kSѽ\xIvigtx*1 sKݼ+׬mN}QaΥq6I6cO8PbeeE,I;Q4Hiy # g\gS`O q/).}XLuf<Ɩas7nJyw![ ِt+b8ιt4 'y`_e6Ya.ŇވSgss{PR\F=#Rmf,MiCYϘ k[V[$'8!f)2 A wO-H41jiI6Qk<.!HKJ?i:dO?n.+=%DIa29}3?1~L4=gANYrP<?q)CԒHl+d xV ^ޔ>Kl,a9a8#D '#VaY ko6Z޻Gt~DjLԽ1OP$L8 EtN&Ւ۴,<nۘ4r'YsUF5ЈQP f..ɭC {dUDA~]dT9f ҽO)5R$y7F 7=ٺ(fۭ^a5~?2IE0#ٻO$~$qEA^(4޿ҋ}eޭ1J57bF猫IB%s`b#eCR^iŇ $k̹`x{9$jp\J]ai6UA T3dɞqy)IWNFNcdJxz9Lt5Be0@ma ߟ\W݀sbLH0jdġ)T{!Q~1 %iQavWuۼ1) LtF@)n%blB.I ͓%$xU߿c1m3f1'>dFYr2/]}|,pH cيAF'8wu{}r_NnOI-*jNT{Ml4<5umHNcjN`fBC#7NۥUJ+?PIvVqR=F<|)W揢k0rWPd'n%l >B'l8@bcމ4 b\-~]D@=BVa LK[e84)gD5^H\|;|Ғ [̮Ђgᐝ*"& TgQ&IV(pCrD[{k]1*Vdy6uSM:{)Pv@O\9dd*,NC] ; M|0أ{,j&g.'h. !71 Ɇbw4@Y[cޙYg$<t+a'4)?{a{=L\Sޥ l/~ka8f֞k[)=P">O%"ڴ@-EKr_LV%{I#PcbC:ϗFW$?Ke" $B-*nՐ%`!4U \q ɳ`@e!\02lY)MË́ n7W?ͦr)|UX8[Dz i4hٜ ; wѳekK.^.6M;$#QrppܝA &'ƫMPK,^9ޠJ/oNdUg[JM5L~:j/Q7o>#m0 J%>&ւLR c$#hv:-e1ǡi_CsBi!CJ ?=$q* qn@}`#nxKY0aU~BֹV|&e& POQnRh/M zsa8Nm0$}~>W[@%Zmq25w|iݒc/n >0܆n8xcZ~BJa3:Wk}*w`La1nF~  kqSpTZ3 GG9D36|#$vq!a¹]R}*4y2Au*ar&L M->RV$Cyga<Liɟ舐~4x 1}}l\"~yG-kG$lx0x6}~ę#NYAim .'zQ/Ky;olN5os^Ah:*5ρ1&_>̜!5э8Y)?0kE֙3`>xު :]^G6F~ ^CN36WR$%ޏi$l>v1Ͽ'DQ$HFi@{i61f*N`fLDLcr `*dfHjDjJcaZ?|BZa-aSg~IVdSvݪHƉPNۉCI263L:g>AJvnMߗx)UɛB0l3>z:vw&P O7 yNKmϘ:Ԝ}a NI]Uuk `l-UL Mfhډ/TjۙOu,0m$ M3Y pJhf=NMb.ٺ^_~q| ը}Ll v3O*#aWiغO.PF&5 WUM=jt 㽴2I*6sM$1 i\p[oPr>ߚ(Ѧ8@/,j1"sb[W&&a ۹rYxpS4X g Rl"?5X > ~tԱA_Ϯ\fh&ss$vݠ{qw''I0v R6h2AmhDr~0MqaY|}tLi@aO LKiH r<ؼ7mF])hP:8yrǻIFc3ʅ3$'/l_" e FA4bW2;;?Bf?&ck/ʔa_HQov;,&D:G`xv4̟l'KҳWrGq=bYÝQ}YE_*'F '+TQd9sVh6*߯y=z,폁 UwوSipJd*;X9 !^v7%L+(XɠF9W@D&w `(܈ZZ> \g>}Br~ )鮇o~-8h4a~~4_-+~U8(fH]W!4 Qh*ȶ@+*C${\jo{s$TuLB+;*#x11PdM34biQ֐>* RJPT#}uf)Lxlre pB?ZKŒ-ae/!)RrZڳ;]XnISo{nmx~Nt8Ns6[W ~[m 7_G42zkwwwk?4 ɣ62;FQ$&fS&ǐouDooӲ4B6=L%Z1.A˯jVm<@R{p\ErߴoOח_SѫXveC<Q`ɕ͊''B,V5zcNd=}s'% ZEh0F/K4D-XϬ Bę!:̯d`#n!ƪg?$@ \ Q~ncmN#+i#.^>mZ{;{[H͑!c^Z5GC ELz^L'؄ՏM%* }CRT'TE!wkA>HkJ<R918UQgԤwK.!ed(.UFTw lQA^n0M88, 8Ǫ>`gV&hPIc b >åyOfxF3o1X}n YpBe~摍#%%OH`G/Sw=ACO>qLAqcUk0a9c>'^-v\ {n XwG9Q!H:?Juy\U6~fYF e*/2=@,f,zd54:\]2E8Z~ ˯m㮦J#O>T\c?K<vdF>8+TH޲F]E edPk] 3Xt!tϘ; t3qp5>!};2.l$ BP`O".hj*ZUtrt57,|s\͔{|[hNIYˁd]I3^=6ggZ9z {"x7 \m|,蔂ǰa_+o)}ü `M6y"@S \] H̑Kqπ7[~߭mgX@eGnpg C)#﹀R%:$3ãu#^~rÅj5z]?t?s?{\'I 8> -Q']!yu?յZHUL{bwTu#,!WBcGq&H8zŒ+ϘTl @~rLZmjzեslz݅3vk#I*uK ry4A΁AGپ;o$||K%UݚH),ۧaUpapH N$TV] 7iCu"-Caŕ.JmWuW`X ;xcE6Q'#x/ȦlF;!{WKh^=M':G @&3ױIsq Ln5ڱx%4#NOڌ9\f^{1֤c/ZL_M~(D\#"2^hmoy(ZU8z-mph^1)e^%1̘HK+JBz40ۥnw'k ?|I+N3U"ڮsHN41DaǬù.m뿕kSCsgdI9SoL?l&2wHZKKlO|_ү[/i]4 W%>eZݨrLE؃_X*⸾s V<Ż۪8qjH_!>HN O1y#ޙ怇IiBx7O?_^}Exlޞq8%4nv^pJV,4~C]988g'1t@Ir?;ᯚa.<7{?crAɕ4̣ l9 X; <[-ǂYH$[lThwHP8>MNƆdmz MG~u V\}wW'oh&5 q[B#ݬv +HYƚc,iiBԨkl|xGq 4NS>+G/vmdڐ> ״ ]=ءBnIeQZ6ngPaOPL]!'qGuH3]H4DZdAO'\@VUF[[E˧7k,J*9k($/[ꋋ~FM$$^ 5h=Z]8:UTlek+8Hޓݳn,NoxDsV;CЏ`'@]s pA ;M8 QYLi#eT=mAsɩ`<;jCTnek` *l:;tBN,hlJ >[ x*ow=SNYǖ&ۗC(<:-TG93xD]hK_sl0^Y7ʂfd[Zٳ~ `"DIp򚲵u潸5KS^14w [߅yBڳޫp̱2Ofy?OF~Z|0Ƶ&纑[4 `Y@wE"jDg19A~@ͦ!Y8ܴ&фpgC^D!݊gƫSt^pSnRgHFNFi6Q.n7xK{-Ξת\Ǵ(ש{.4+3? 4 j|~ɿ52-)q}8 K+hG/ %mA6uSyy)Ξ.MÁkINXM _X0z!JK Dc_͑+6/LX-j^OR0) EՍ-:9m];ive5W fգkٴssIhZú@ՇOQƃ'L@Uw# }oca:@xlJ>o3x6ʚHPP kvUhzu~&ֹ%B+'ARvNo q`FyҎֻx >;~-JZn2f2dIVch:&w:Zwq&Udb˾CFA'?h2ժD.~ipko,?|nj3h&Ϙ0 kpTJ;ڏSI_IbUs8Beɭ B%Dp\[Cgη=0lR.<&}2{9&|ӠZV F4jIN)ǟu,F\j2/5*" $2il4ȈLd\e9;s˸JM4oY)]:Ju`A<./pG06@> |'W[>ߟo̫`mU,Vſ7$IO2l$JvE)˛2yp #F||ڇŗ32L/RR^QMSP(@+Q ʼnr7앛Oτ*oaA Z,E>TőZ2%E6Mkjy*/"L' ZԢY/ " s\OKZǞ̛5 _]c{oM,s9CLܩe+? wU}~ _tg,HfW6Ou8{8E]ǫ K@9脖ﹷRMQaZn:3*R^60e[7o<-WgowԄ46p_A:ؖp,G7g7? YUZ;΂^vfjm̿uZʒ;l _TTq0˹1W ^~6+Ҷݢͯr8C{dL QI,/a8f&[>zW?{'QQ:?9Yҁzo3) auEzU#=mNk |,MqXA!'{\~[28Ũo|N$XY 8~oѿ,/*[ŌhB5^ӣVQf;+ڧ%kTUu :O׮4Oa0}L\QqmLa`ЙF4VVL =p"!ڿVѢ՝nUN9\+!y9qDԫ8+D!`ە:wA7I$|UiJ>+DiߠR TFi#pȒWz3Eƚ{oOcJ#fXy ^/|&yqu0 wݵm$o4fB6Np a ;Xbr8-כCNt\u%$,XfZ +}.EoYȐ= l %a4b NCFY@m2xBD(%Hw^3\pgF\.ũP+"<ܕP,RbT`IW~S͋?kc4hjZPՊMi$hQ7 GcGdV-iI+EDЃZur{B''lgPߌ阪S.r $s}՗pgu.RcI栦F$R쩶V>o+cxGf>)`ݪ`hz. S(OI ]Y0h $y`S']cٶ]t8`uf&Ɲui! rYwq[iLlv;+?TIZ:dTLtrRdf:^*/,&NJV|Qhj"9gN>5WW{C!c9 C%1@Pjڕ׆VC[&v<'91G0cm1 dM;I J6UH5->i-]D^=qm^RYLgV0Ӗ| GG, ,%-]V\V1'б>^8ӕ* G dPtTD&oĄ<ݴmA]d#R. U{ylD^-ZKnJ?(Mup*w|́%?1-4 7RF@Q?l bgk|,rwSEs؝Aw%$&3,h3 7ti$׭Gelo$tIn]ؓ%Iw]f^~!׏b. ٮeoVX</VA_+GUAФOU`4 |1ܙ(_\T)Ӵ+GpՌoup'!JZXr1Yxkp/w~y%'e1nJ]>DMpK^ p2Rד[/yb[r71~a0sMҟ4RXipH \Y1dpGЍ>, %Xi<+la$!Z0'cpwk~O'@ Ÿ}(ƾ$ 06x{ \|`ش#=:7)pD*9jnomMBajY bcuΑrRqGcysa &MpwBiCrdʱ^ǶwtN'Oaw*[B'qΫqh!THWI<"Ye)s1 T,#.qn4ek>;D\S{ћ. \lMҸKrV)D?B9sg6,0ēZmp q¨o 0N:#@4`L)*N?|xh[;ߒpa4$nJ.u)yxKMqʔrm u2kE/uDR* 'zS`L5_iث+>rEN"˨k\X׌|)Ls<`D0r]$pV t7Pq =_GD ţTh~NB+7!<-~UB:+^z,dxbzz ЬC|pp38yzT~,*ѐ?XCsZ農+lN>Dccɤb/*r朁Zd27 *u5V4&:P^MZzx$dys{9o ghhעm/ !ђLp]ehqKNQt$J[&RwV)4*ŭ;?3`U ]!$y#ٟ)&m˧i$M򸸣5-Nf -Vk18=hx$A|轇;=2Gt.ZLyuu/>0jcA$'YLL}5kN҈3Wg|rf9>gBya9*8PN4 $1pY&DPwZf-n5a$&HכLQ$9VoO6c.JP@T㦥tFQ-cmYcm%R[QjBYei녌Yqzy[ͩgunWM{ڰ䆡gu"k{(nF*PT[E<DVlK5E6/zJ1 אؗN\"R ɧkK$Hv]<\bt}6VpD66?m7mtb ߬ye;"{qq62kw$<& ,Dٓ;JdoPa#:4?pSVʵ~I( '}N-@bi<#nl:(3-B)]5mFx#ҊӳU>X5w-N[ˬq &|=2kR}y1qO W/*9W"*mS>E;dpQx.S6uj tt)Hs ASVV7wp,)\DεZS:E_5q!rWiVoteϙ5K9v[fˏ[- |G eD:_aw>' ^&}/#%10X5P̻{awvM u+9=T( <ʆurFmKV)L)PwA=J1Hc&̼4{STF@&&^檢x4dp.CĉS!ggO֝)7Wtca"k0틜-*3La9Ro eE3D{8Ou+VjA(Grt9Ro }dNppkoXs{fD#HSX2j JYTHMv?<"L1߉ 1 ;IBOKA?_CM<[IbIiJxL\Ѧ8{(iK70m's'io%5\e=i2:Xz%BCcq6!vE<$1u k4YNOi8:4ABV;Ru{Y,d'p`k&٭tFuk$qs>N])u'm Zc]4C#e-%VpXKJ\3<:a*RYf+Xpk{ٛg*A0^ּRMžN4ꮼ nBwL;--%T YwyQ kPф;YҩK c[ r<'{{i6LC/N|P/ ߋ knVP.s$cAn͎ƑfXl]H/?ΔlLt5#{):SrjP%.񵮂W]0>ԇ7." ?HP_rQ=UqOUTbiY8snƸQ|:q>~5M#pJ2n}syrz_][/i1I]I_M#Y6;!j /_\쪢G2ɰKɨف*!P 9Kt8 eMim-qqLHCKBXWw*W`f JG,V{(9#_{d#+rn5dtC. &isJ wE+63B+/l4n.2c%Z4.Q{6GQ]>]mc]cM7Juf4õm5.WAO5&}"ڒڽeBO+V1d܃ a=;ʑ./@N m1y"hu #va{$OF$nb'7V ~ [ l1;qgXjtF#XB x ѧ ,7 L>=l {Nws*|^ WݥN& ۀNNS>43Τ$t*ʙWl_ҳ^$b2ObA{ ܒ۬Hɥ{%pQj$:8oɭhnכKbL@Co^wR0~[4A]>lnz8qnu6̘;޿ ƟD=uԭ= ЫcB^ P~gYݚZ݅FM4D ?,$`淒,EPO D#YӲ_m-598}2y׿lZ޻/QN06~uQQR`BzB7*:u@ qcӗww$Nc Qa;*D06W9ctt)5ƽ^͚So8ץ}qhjS>Q?.kԗBĜ.Q&C'zEwZ FvьwA/LYB?^NuKْI 7]nd%Rj\gɰJ_*:ɀo|u='tĕC6Bjn6e1/ mTphZ5t%F Ռ42a5tI(XDFL dt,ݡOj_>�}gȭRrq{qvvE꡵{P&p8f}LiX.Q4t 3#;qg6:QC>R<긧t6l}0$.Hg)E[Њ2>4K3OlORٌ=4~4A^|FbKߑ`IQ=:LTl8=vfu;./;`5I{F淍_{4Zrܾ5)Qn׃ȩ|Op! a's>>On^yb<҅fSFyޞ_|pR6D&VEZu 3ׇ |K߁ k#V_q1\g*IU/%ʱ+ I ʩ'FA]:N? й7xٳ'77$xj +Kҳ!gŖe-[ώ99[&Y֓)! x_8#<Qsh Y<](fz J]iS5^۹qJ,' ?j2:tk9uqfVp(ӽ#'n_iz>aÈ4S|R9Q9)GFn<z IS[n,{)cg8ZVZXdpC&5O 3D MYo0Ī0L%GY5#5!U*C0k 7TВ_I8bP{_W+O}p~qƕ^=Ֆ#~LijoutX;ur/ɯA1~0mR_2){8~ǥ3I5U*7 3[ '56衘ԽvH._Oْ{DUeYlMI{€$H"6.YkYy_Dd"IP=gU()2Ȍ_"_ R`zt(\/^(; 7)mTMİ[ -h1=h"/+MQ=Vl `ЕGx>[+kښ2g,"L3fc㻰,slbqB%e('OsCA-壤ID[$JкMぬɇ%%|&\QYMf|N!> ݋$8;3ͫP1h#153E&ȧaiL/Rrj32\=hPUJ6̙.P}h\| hv(ha*v5![럄'>d=_1E+ Rb#dlX읍X&g4?+˄"U\iӬK2gx|\F#E?reNmSs$9 0E|YN]1ӵ϶gD9ĉTx/wRfҷ(WoySJkPP\Jխ]ڳ;m@:B߮ ɢx$`g&Jj=Юu/?>Cmegy{zs! HG_V&3~GØ \T3ACqlpa68H1xd(ƩjbSˆxLk?$<*y`()(Cz͈~2nHs0,(3ޚ1\T1O-m?aH\{}B9A(YfFmż&d5{ȶ1_Z*v2U5Ėz텳gM i=6iI@g JLS`.q}.íl&|.I戦p5|`y(̲pɥ]Kx[NFL]?Ȟ(.siGc77 $Lh0h.Z@"mp◗=}'CdgXڽ^bAHdu$זr㢮L$ݹo`;Ha>jH]JCxa{uoGRn@8L[cedd6"JHٗ=LH^O:UJ2+iZ䋴-pB[l³u9J\ˮ#<׫mkWKQ ~j-RĿ_Y&| dzx2-L8YEǀP}Drp>"[.θܝK[U;tdczz@ lX܂:jB~i!OޗӋnppԓo\°j}wtzAu{}11:oɟYN! Pp,  "BefO8aҒ.@ ֦M?i+jДAo4N7asജDl` Pjs\sXl09aeV˹~̇f8=>}>ި! 鋀9ZEsw1 [bL]SoR,E>-ɡz'4 s|q+&Mk=-j>DžrlW-aD|l f8ӹo67N-Ŧеy _m/ @C3ir!LdD(t4Y Pkmc^rt#7@g H GBuʖv_zS> G^)0JJe4 UߊC^$p-jբ&d9ũ7B&IaB) V(e˴#;0I,,P[?Or`S!j::^(ȿnf3-GAL> '^L㝧/ޝ!Bz|::h4ʴLЭQm.ih!k*'Ê+jtTr%\825ރ,M,&ƗAlS=a$g2|,hB_׮ GH\Af Z'}HT0\%rj!zۡT+5X\Nh,[=pAŵ{Gmf3T?{|d=go&kby23@x &Z.w@_VjhQ-E4'V0S۫ X{ƧgAۿ]x}} I'7CK'ăog4.8ho [ճ\RCĥ| e"# ܤr`IO<>8qTYME|~Jv(r<,ʧ'NmSWٍ9sQfH)NR'Fz6%RxW\uAʰ^KQ-/aQK;hR-ZLOz"A⡷3ɣW`Gx,A+'FiZL%j0M[Hp]h=Md0Leˣ? Ӯ#˺ 2Lѩ=cQEWe{jVѮ+#hI~ }o1+a+f{kY&^TqPO'8=KmZ1!=Nq-Ca9"PPyHĥ۵ad<a_+f9, @"IA*R'r $|Ļ,N. y8źij:c^r\,)iL_D 0ZA:c#-F./6F:AǷ爠!%5|Q_򢣖\'SK̵JM ܏*HMD:AkpZ%&to'c'2He!}O{-\OXJ7 eko(;V2YQjU`NleV޽8t)RSӳG.EZ-v7 )9S6MnQeًݫ/2 rWbJ+΁z⯐[@8_GɄ;f8v&FѠ%4>ȢXdc=GDӑZT+Վ݈G놐n ieTcݳ> o24,f^f.G[Əy%+B9KWEO~m u=') 8/x ,Z2:7h<<Dm%Uio`Uzڅ'Yu!x* %:sҶN\{5,!§=+y^^hC`W +LBCVjRLs"f~wDid+@-J{,Z$z 'pa YlwB :@+;3߷13}}97I8ܯW<1+L (qG FגYBǫhћ}kBwNPykb=o) "5\VwǶB[V؇8  ^҂:,U0Vao.YKPbь;> @"׬j?1(|1Ym{=F8 erIhj{ƈVwaJ%*-6 fL(3q=Diej]h\Yz%ljE{X:vK/֔cqLSTyku 5`(On-FZ"\t%/%w`첅tft͂{KiiQ+j ɘ?>4~fN a>wϻ=Qd]/»7x=9]qq>\V)ɸkF ^W⳴mplIV} 4gCY%O#G{IsNpqbثe;'Do,^qb7[IpuzN}:R)tlI74V0 U)Di-p=]4ik¾5Ul~-ǧ*gNls<ܧn|.b"U΄Ey sPުom ,O(Լ"&Q3+%Wm)]n[ gsJE$x\ ZmJ*A1҇yO "mIX U3i 43㼪UgE|,@}[94~:VFjA%'lHFY1l\#*JdQ4A,7{Cn"i2dKcA[Ru9%p5u&͙?r3=S]|t>K>Q .Ri'iqA=6sh~+#@'[]ä-PxN/F~>>:|;Џ~( -?)svpd)=Ejt.Wl[l !0QoHrG4ITeFUSL~)g3 Zutql jUJ{'^lDTo/7ƃHXTf-9XpbX*!7>|EI 4p vi9S4ČG-gS{3`f.޷nܫ1gm/\CUB9XIhG{+@pCdOjQx];m:o 1m2Y\Nm/4saWkf$MU@9%w0@Oae"c1=pi+<[E|pqk1fON1(ܶu3YI[,|RV\"KV^Bdcܦ4aZ 0.P7SAhfZ9cX:!3FZ؄륍T{3]Lͷ[5H I܊,xHfmGpپuةRfԑ۳gϻ Z}`$kO' q)ڞ&f\ܤ9XMy OW r<)|&]+f<mg;?90uߘ{ۃ ?n2 I{ C5k~Ȥ##mA0~ZK2c&Ǫwih彻4^UW~վɸ,IwkW0q ~;mw@ 7#Bfh~Vߦ:4eH9,̽q6>[]Cq1]-pfQ`ܫ|u֐ 'DR6٥Ir]#whgƅsy`4A0<) k0?Б%)rSG:jD$(MhYTQioCfPnFof̴OwI IƝ.[buOo*S WݾGQ@a3`aQ7#ovA%` 2H-%#d8$-s&Qc0'58Wa<Z"vOF5dU"?ߪņ(a6_U}WP?mԜ(DRn.nlz[7#ߺTp&7,R_Fm3ކC˵AZ kP;܆r\lTv(BeX\(>F@_[Re\t2bS\ Xui$k加EX'&qV?,V6OApeHGoO}/JHbhe%+{hߒF$RV?5maqTVGԃ~$^,R؇Bx]}N4ʭZbaqʅ{67?nrХQ;m148`w@;sbi5[zUxNiXxF&_cIقkԕW'xb púm-.Pu~<>BJu{GWo=&ܺU0")դ !U_SgӋiZwֵO(8߿?I1UG k9 LܬԾw9/n@cv8< OuN?].LpH[jR"u1 bH1/h;× J $wrV^)gԩ\~^[_ِ?yd6aP \zr&>a 6etI|G搪{[ ȣ5(!7^Qjh5JPaoFZ"5ڷ~7_̪\TN ^,/ب̱$VL?VxmDw|Gy pxQѡ# !-DTצl2vsOȆ/JdXw[!Z9YJg/Az߼~S]9Gr~h;crl$g1N a>zDYMԶ߲i_HZ1'X^pxwuu{u`.9GI.c =EZ8rpv\ͳ񽵍_uȓNhB@ L )juMNܭCv`pSA3>c$6KOaTV/vdj$*KnS.ۊ50sArXYdEĸIހˇ@q_6+ȚV$aq_K7. djZ& [>,@nPa+e-.DžC( <'ݙ;cO—7h"@b7?A?>wi0I]C2ՙe_:&÷gʴ5Hd(WP7-Uҽi^=I󎓢*[OΡmv8)p9zW[&!yF^5Cn>mXMI9±nn$Yf҆(󓆪[F71.de6wI^ې7|8|ލ2mv]hUpBE_dWCdު M%-\s`>m= Q.hd#D$]WgIRm#bwͦRa GUhỎ͝*^ %TI5ou5ɜ\i4$[)#OuƩn䓼CU@)PÊY BI/z_/Go]l+]5!˳ ewaBwHϥX&]/Vt@J @WSܬ8MVzEb<5;ep%xU]ah`di"VNEpwڪتAL@A6bnY o^K}5]sR "_la%| Wl+юm7u Q%;D)Xy}ryݦhW"6!XԜ,[ԏ9i{+I C.dpx4`ObYhW` 3QA%O9|Vܴ M/ R#]ӓ%(ԠeYF%mJRSqF,6qcJg;^~h>GK3~ \&y;=&™X7;@-4j7-5ݠZ|{R‰~/p*e;pzz;4 ͣd}wC0].Mb ;jɀbPi:k>u瞟+5a^k_O;krC*#vSD|قҭ[\=r娌eQo$F d0ף)T5cqSL0./3 l[61Zzȍo'I0#`M{nN s4u&Y}x0SZ:ԍjQW 6mi`11 }~fAJ d z>W`:hgsowMf8g0_a0s6'[7":Z `9.1\hWo`P.hFl s(n'4VrYM,uS|ymÂhJ"ԓo#RG[ FTh08p~4&\`iLn A3 22?T%cp^5 hu1Qi*Tc6.,ـ@ZME.hx714ꂋhuƹX9p|&醴@[{$C?UъCvmJG7‘9]`"b؀A.`P@Pt *yuWɪiA \aIjdؿNT[7 Ϟd$KU. Gޢof[@ܝ fH9 Nʜ*YXuRnZV1˗ȖE ۆX8rņ|_j*y -QP@1CP[LQ*\F'@J]QM=C2J@7 vL/|BxۓZS +CY/hQM%H"&!ߢhaH}n8k!m [ȎM8sZ< "%彜䐮-Ֆ-+g1|9Fzss'j[Q\:.ـRj<-e\NHs;$ R-E-ulBck0܍T [{S)`ׅqW=c*";ŬKősD[Z,1Y=yQ_= -p<,[e"0Kv2enO\B80KmSRdSOWYRoaO lezvh.e?2rZ37=8j[dWxPDj€ [kJϤP^bPNUG+} N>xQj7.ʫy-q*W"<.h)eH%ZrfC dum:r9Waf?ӕJYUmZ{ndy:Z_}dˤSqUޏ\*yHzm ^ &rJ a_l&zEtl5H `- 66uR.Pp1>6 }ܤV|+) DMvcOË'`MUr7\WV.Ql3yivh\ +ݴ/`MKEX(yvz~Tt;3yO\ j+v0g&H7łg'bHO!!&&#m=ffA[\EZ$BQwLXVDHyQ!M|8ܨP}SҨ˜έot/Jvkf*8G7!)Qlh,qJG.z{jd IHiY/úR?XFYCTدU?"Cv3}ꮮO?h"y4,191|.tih`vLEz9W~@C(#֬ ii[=+,^"ݬz؜3ya9sGL %W˯O9C7B)^֍;\ T^8d`K`lE&5K⛶x–Vtfb>󯙄 ފ7Ʉq`,XYoĄV3NhEjl-<6;ŞG-s%͜y :;f7b\9_"cs8Ue C`#'VsFo Q4('%a[:[K\JKwg6%6Ri"̻_LBo" ɰBL{M\ړtfEuN5OϬα P^mMmԗdsuk mpNYܢФf<`%+fAG@k\qx4JF%DmS(ړ 8o RfjdShPxx\40G' Bo/0ЭF/Px`L X f7" T;Ɵz(S՜7uEo3!ӊ{1PK:Ѿ JԪ9jN~R"S{G_^>awKAU͐ԍ݉3L^~ZXM1q=apC$gG>:ؙW<'0+χ!5 nyJ(yI)vloLcTJenS~~o>ڣhlF=+ތskNYM[C3-RBDzq|m0,3FU WP *k38& iVBI“n: 7KTFaxyxQtmviJPzm)Si@-ŖѷȚ$8ٚ͐N(]խuDc[)k(PKQVK2׵gѦs׋jޘ.?\=^ndmљ3Z!`zd{Vd3çxЁ܂9{W~Kԯ`gS8]6F՚LkI7$A7FNL?V[ Tjcs/~a^pzPNDɠL2qOiykrCl[u@DE 7BlQEdwÄ̴10.P*1㴒lg+}\Kĵbo)[o]C]jar&MhQӠKxö݁QhZq4azG6L2GGr փ[g g6Rn|7-U3HD`}tk&t$m hyҭyx=C7_ڂ0<z 6#O Kl5~$ ÙSRÚo%7EKBU``2t(`U@㇯ɾ1@}3;6nMC65,UTq5)U_x:;;>ڕ'_;6@8sw952ԕm)Nby>G^;inYߣ,e0ض~Wr jZkv=ZaAN7z>7rO1|oXbw2Y/| h똌a߮G;G-a\sgW\s%ض' 4ڎ)Zϕ׸Az aa#\=:2->GP-\c:a#7o0eBn͹pirh%6:L ,r(kw;LMj ~D7T׼5!^30VgQ ]|G{fVFVlXYD;*BúL&wLJCψ ,-MHgTev*k#o6:jTyEH04hOa=U3aēFl@41&0y4qP<?>;c"zddw=cn5UɘyLJ8Zf! . #eth Zb>f‹w{;I_N:xnc?Nٗ=DwI(\XF [.aw'vR9IV*@8 -,1*'zLZHpOV'*pkGFbQ|`ZR<+kjl1 yEW(k倍ff8U[%.{羶t/*؟n=K"<iJAoT!Fb'=(7PI|FilD\N&e^'D\eK,"Ĭ^nFKOr>Hg,J&Ւ*GAcT7!m@Wŋl? H{YTK^fS?bݟ]kሸ*խH\57O%ZR%6"?VuwmͲʖzuxprBV<@Tx> ZB7B?0 xI9ԦFMțaz@}4jʐ C*j3~m0[ڙA^|Ice(i3fٛnv1"a n~؀s5;kKn5 /f ՝r}2wS@+$Nƌt1-L^%N?NN?-aTU@Nl9P\ ,҄pUS5><=G.x͸f(NQߡwD\%E/'WH [3'c*AyyWWW2& |~f֯t3{DZ3ICċB&FYwL7ɹl4.*1)ډiXȩ؝G3M4/gw, ܲA3<9Rj{oo7bSvFXKmdb=6-K0-澡c&=p?cCxm0 So FuNiL.p6NZ&IJCm Sy4@JNaR d ߆qDNI hs-e)\{I箰jl_swqEnYf7Y<$M 2hL%`9<эt2\Wwp;oO$'( 7"&YjujȎrg86wzٗ~78V,< ~Η~7;^[Wj?! @VQ)NGap;<>-*>^P3wv[iVScOBtF%sQ*頻wvPpӽ'~пxʙovRl$5sz Cr094Χѥ5Edp/2H9m0|@ػ?d׍PfQĦTá m1 -lFH렍GV&Ɓll Bc^ϸ2JeGB*[˛<4ż Qu9 ]2\J[Egg5tMehiY; UO;7Mdٖ65Ě%6N G ˽XKlUL$Ml6J51UҜ٨v|ּqx:mPﶛX9rɺlfcb 4yG0' J2щϺ^,cE1"Ó%:k ]al  glR˷v}_aj=$ȡMdVq}=`fwT*^ytI{Od~SL4&녞Uڳ'YTRlyRǣSmdUU& 9+0ױيpslQ7Ӡ{}t EE3]LtAJ?̢v֯W'7`^3'gҙlO->&K:pG[@k:-˟^\ څmwE: 6x?jWHEU*ǛI(w{;i!D<˪Ǖ Wr3jB^,@Z*?W[%m͘:.×G@i1zuJiyn~EX66qg,ac3{SIy>o)uGUV3TOmdͣ"YP8^Sk׏CQ|x *`Ex+z8n1FC l:FV9Y6xrZ!%|twTml:o;)ic>(2(Q7 g&Ɩ,YB6KC 7U6 :gP%x\ȿkH^."!T=NxSK}yHǓs zc<+6± Gk(RvFo]G6# #Fȹz9hydIM"iOC"Y%ķMK&I4K#N=2$32qQ0{sJ߁쎢{j)F@;=Dz͡m`jw7bslmV1Ãڜ7B&k J74 S<9ߣgs&LJ(Q" 1u*~TRЮs>nf@8lLOU[Nk7}q :&UU͊8k? [;{[8 pt~mIgBJŶm3 Ije!,]tx[qʞ *Vmt4E{@vV7B2TO@sᣋ FДEk dxr"djw #xB1L4J78kB[c 垼59Ϛ . GZ^!ĵj`^FFMaD 0e٪٪[VRr:\J& ǬI|5`ܚzRwjY!(pVQnYy j?rCjǬ"wD$?#9 [IpK xHϰ>Pq#7f)au/=[{D*8PK2ȧd4@ MZ &Vo-Y \-/ '\ôY3}@%gW8] "Iik]/P}+ (3|DKd*4MD ?>sdLWezeVb`QUwP ^7MH[q5)Gor"| :"VAKUzhiqG̅š~Z,CcX5fQt%i gР4IvpIg񋹢)? 7(k.[ w/C%M=Hk(1wM cOh6f2Vvvi 53tx| z[+dK|Rk;ChV,Iw6xj 7b]Ewxq; @Ta~&YshL9m1H.G0)w %Soa : <"֖z>0K H"nkNe~(),xxϱ`KuM O3A7nBpz'$hh?c|:\&+4E>Dà ľK@G̈xi&z{?Y", M0̲z"*'"p'sq7ٲ|"ORM|1hL>mh|r}_}Q(k%Y;U\%&EZ+^7i7`M+s&Yay3Ә,ʼ; "cBP|PXj%93 %F0_ːNMF*tON/n/E̗W.٣XjP/xÿ]漺 ZL=GU0:A!S4{GiC f(7 r$bz}\FMH]G-IWu؅kl sOrJNvps^`Rg wUWSayc_iS_{x(0|$Ț87*qTӮ?ut*c^fe8֫m ";|-o«oB?r,:6%&:  `f{k<``-5jw Y̚q%%Q%?\Cd/8<:;}ݻA;yzu;SF6[f>l$g/S2>G8Eq.@JK],f(83ip>z>gÃEA3MVsx˱JޝW?T7G}gs{ЙF:ΤԨiݿf`oHJK&As0z,rfy8O1IֶNa5'HGA\[XS0wسn!tXv{GIVky(%J\*yNX;5 P$J⇋<2l-]YP%߭`=z%aGG87o"@[ӛIW3VT68}R4 аSmfCI\Y9f1whܚf+]_9w-"cm j\E g+$A溡 8FV4q[PELTυ?$vj^{zQ<YxL+Nc݂9]yqTʓK./①ݘҡJ<֓Q00Gk=EH(1sqIe9GDԾ=(ۯ6*3`g2yO5W&0V0Q.ۭ_b@E)@h{EzI]%ۻ^}^(5?Ӎ2J¸uĭ9O,A@Jx+TFWϬ@~B}V0:YdL젽h6 7WG5"̮KKifrH?zޅQr7[}:LJDn=*:if c)4ɶLqSiUE"^41 ODvnA1\UQfV=q3[lz+DNt.ѻ&Mp)Wz蠷I .nL;'P?աҳ @aƭ s1J3A;']"24mN-0̣wLU+.A:\j )"*2A\T3uτ*%UâI8o.Yò9}Xm+畜}q2؆#R^0͑s$=kjS]8)ĮРwlj3Rr /dTyEpT3t঎4M+$ERjl~fIWT}Od >U vׄ=zb-4n{{\J)/za'_V-9Nk9jX{ME]o*7?xҙΙi\<(wm8O?oZEwAd;mLћZ}+1|SYݩ#_%O*dog{LSM3FmD7rP,:#,B}J 3ҋ8 A]~@¾=LX)88=.+̋@ ``$8&G$[9Y&@GF|zMtocrNWv"ɶlt0dLL Ix&Z65)nЌ$lD_ HgmO:#1[{_aI^|䪊$  S{|zM$f!)|/^~UY7?,qY{Mw}"gd|n+JTD-eKXAO$(~!soԑ ki"dr 4R-*n>Њ ڒ ^ĐFp6^9: >§68A5 U֮,/ ).fiNF0aV5-ݻ]$~z>*,-c"C|2Bd7Uy_8gb*peI#czO><]E`09+"']tYb2,J;.^wɦ>pk l+Ric _CKl /o=#MKp~5}WS@W/@BB/s2GS8h8| d +B֪tt6Cy {+Vu O,H+b4Mtٔ[)]\w^wVYd]ݳ $2X@b{4Slj<+iF:~E(֑bN xQ Mh `kp4^2߾ #V;$ twȴUe+7 ڸߥQM{t0%F[lM8҅ IYRz`[-hU,DZ#`aQ:3ј; fQ׺@e mT�c'8YF'B~-.LJ&E,SscCzڄZPT#./Q=hw:B*t2t+8$496fLx^䋒]ީGNHc#>&:_hn<4~սHުPSqʣ j`r FmoLVmJ~h']Ё ,/,~#Lw=޺IU28%]'+kSXsM-- Ed8$Oov+c|sHG|hӱ¡ZmYckMVKK&Sւt2]p$)wtn %'Fk6vJU¦_˨Z/ z-ϣt< QĒBZ).c螙+CFK:pֺuhIj,rRj| ŵk]!tT&e*$c [9S:œ*Yn70Bcm|ٝ vZᰶ 'dD^<2i\6Q`ZJ%^2EһxZc+)GG :~4sgTm%!]j'_Me8ux8_?!NS\FxQ 94 " -ݒ>ނJVzS%*<%YA".-vG=Ny߿0Mt~.'xk]]ȇڧ(2VxFna D36=64 iMy'2ԡeU[ ."C4=W2Pn\_+~lFu@[=A4qV8l0Yis1cAgdcbǃi:0"\͐+ +ܪ MG6pU#zfn|o,Kh4AY뇠n0ʳ1OU}$#O$8>_,,l҉,TTT-Eo͑~ DwrVe1%}q1W[P5l 0_k{tKv9X]&xup>x,ρ𗃋׏W]?no'tˡ D͟ϻ=`\Y<0 =:^?nXKkM9;X&RI\KXdL̙P%$f)c6T&Yj T`ULZ|ܥpI1r^4$ ]^q+*hr;<>Q+WvlLg&vCM_F#GӋcots_|X'X^G*##VVDeMֳ=m0K-Sț8}d2)ioh~aZQ|oiba/L#eKQ[6$l^1Npr(v.,\U>ZgdR#!bxsfYLOReٍ)_0/E֙\2a>p O))1Zs7<h56ЧQ5zq;Eb2R4rw%$50YG΅x6_~If&͍H&^R 6OKȀ)'yIO5ZQG x>ei$\l bA/N/ÚPUc !>/RiE%Fn q.`P \k30qT5@~6S#0l3=^D/ ߼ M y}7JTm6&!3^ԜR|1t,'%7j@ᇷ33-D8,uk|255f2 N~BE+ Wg?S⩎\1t_6(׭[f4QsMbzhe٧㣏~qb ZTHlGJvVpmػH.7]PU-p}nub2=эp5/!?' &t kV{VD=\<=M[6E#.rʼno@aܑlPH׽ 2bp%W6+!ҫ--iOK"nDD!Ž}C% zW|0i jD h꨹H$v 6}x6#hPqϭ?L;9pD~WM`!HiU 3!n<ۀӾǗ#|æJ3F›SxY;F4-!>1 `pca=D;/a-->}Gco@ZjV'TŖЂ}_z,oJ\@R9QH"%M[?83Q"!ms ); GY'2gTU sЬgb1M*~O2|qOV&lP E1h1fјR x~*\#nJ8Gr{>հ+(vXˌy儲A\dGq['p NF†j~|Ϸ5( xլ{6d;?϶sx'tf54$3U. D@U ˱#"7 @ϷfMɼgd\v<1s9>M=wn ㆗WF߀MwTQ/,:˻oV)q?ݷqaeP#E0SFhLָλ׶LR5׿s ZFn?JPqh/ک[8qTW PH޲F]LedP] f1B?3<4ԥsRus`#tJmpY ȼ0@HZE\pT Rt n4Ydg ƛ)vk~[߭lN( 45e]I3 9^ZžI5ggZ9B:Ig ;{g"x7J\m|,蔢 8aˌ!௵:#tv 35qM3ՔgUX,e@brG{ʛ0L$p)z_C23Z7h{OjuP-)WOϪ^=ONg͓qJ wn:WOAbmu-<¦,*&P:U݈%5KȵQVHALzŒ+Ꮨd?d ?*1{laTZQvNrql$X"86-5DC99tq ;:lNf$||K*nr?a*808Q^%TZ]L7iCZ~k4J~%C[T+U?:: !ݨ֎ߛdq~ue <814d ¯@!>HN v,6sg1%?ݛ!怇4!OW2<^_s8%[4]w.f0 !ߐj7 `Ͼ3E/ eٝ-\سJQK J{;qCY,՝<[-c,Bj4[55=&!h`C6MF~s{ VLſݜ}CFl, 'gƵwWZa8äSxp+P1dM ]hEf+NX:M LpDzyڼoǹ!]23r.iAzCEf/ 9ZEn,jTu^c>@<5E (VAAO'\ˁw.>ܬ~4z&$0*1䬡wN_эD-*"C 63,F@W<7I˙z -Τ(2G K1a"{r=~{+ Gm@M9pwWs!1k0|ɞ9_uߟk|Yם@"˰QiI0-_sd7[Zx~:pBe|H hFwDfs+a&\iݟ͂He HFΈ:Srň[bd/H[\Lν%88ޟ Ϥ(myIs")JEm2'jtpzf{5M.p)d֠Ԯv2[.g$r8OFZ{wp 8ǭnm@Ltr)Ny 1e?kH±PL { zEC~ؕٸNgCO3'wp]s7MjK aG`1!Jp_eN}3"6߰<qN-z-a5>ޣa&6D'ӂ )9zbgh\XD';-qzm e?gҎІWU-.# H.܁w5ͪe]\D'(,xJ>'660 0x諓Zlɀf]O4OIm-WI,M{ݦ2 7Ռ).ŵԐ߷Jt,IRY21D5LlDؚ4;dΠz\ӕ{21_@\ޢe7'mOkY{t^Rq+Y6?83-ɇ&bNzEXz(%ɶ!_$}obn'j0PuY#!G }38c?Aes a4э>+y* TجgpƇvwvc>IY9M+ٶF}0?at@Nte&< :WY(NQ3q LqK-ȠZWo`g@춰= zjmc=bxK&X1h4zI2Tyj"L-`4"Bvarwz^_^6qz3:Z=1T֪S:* xW0d'4J˂&e尠8Qn?SNYǖyˡ u^ޜMemF;>0X] vPGE S&$Y.o!OƼ$\7EA5] L"4!t9!@%8C4dUs I"/Rt+u[? zūM1JQ!)&eFU?n]# f+ T*D' Ky,d5ͶYc!/sS#?toAJ1"ɔ"UG(-H9I<[2@3RS!\,bӯU[a "@rLs#/>lS⧆A636I6U Ud ԓȉCżZ4l]bz]OGE~ bGnj޳U/iZ;GЬ4UaLdPxQjn/_>W!Sf%% 0ы@BA>(*H^Kv24g+HЙKNM)ᷛ _X?3z)Dž[ -C5GV^Y`o_b@~9q<G(sbT,4v9E,n:[4zz]ݕ lg˘ʐ%Zωu۵w:룴n9BLANC_5g szHحRO0ِFUQ*]A4`BrfD.d\gwf$q9:d%'h޲ @;:JģlR_i/j~袒3UyL l֫;jg>~Cƭ.!P^9 #~=yf&23n}ؼVp0<.Hv/BϫTWM s|;k 74I"qτq3a\zBuDlcA n_g߷jY$ T\(aڭI@%o?;[4%%4w%a OL.NӿWwd_^}&T| ER_tq9R[L oH>Z ViAZ4p$0yp<Nq^Di"]::oQEGj[l&کmd+; uz!#)W]6xExaaa:\({7a30-y7V:?7gTm`32: y߼Җn<.~1xGMFkbZtnQK:EM'kXJX2FUL62V_ì:ZCCļ~IJzSTtW& Ρ0r)X^ zzY?jڈlj92$l#0"[s[axj"-唬cuONvN1(bK.9'zQY k01iXHkoۮaFc~6!uA2H_qTF!/j4h.*ͩP\^ЙdkN[Kl%4KfP~\|' `.f23h4s Cgև';sIZۄ{$")buR6EbG;M ?hos~`, h0FI5:\dP.`I:xծfgt0.3Z{.F鏆Rxmf)P8ݑj&C͎0f%HJ|}n\mp9&e3-LśOgKxDৠFdfG=|ytz74#m00Do<,Ʋ[g+An^qf٧ߢ,8RA=ֻoQws0U6ֈ7׀ R RWG4gY!y:7 =B2|mUv]=ZC?zso%#O,ajr$:] 'INzӇ{DQۗ#b5"3&0VKП s S0,uKqZ'.NtA " Ň&B U핾Ңx{Agc-j.E?#sQQ))HΟ9uv+5K)k8,Zor^Rr9CN]}م"#]ajvI'-ep)_z? Z-Է+[ xsIl.p-5T69[~ GGEuEJBLjR! "La$i3!T'^S|}w"JI׈ꮬwiYUp ejhe{GU_23(_ᡵ Rƣ0m=982"pX= F뵰bfU׼㭃𸅽=m.EmJ}@^רu `o۱.s(i}%c C '# ~;Abw*揽$ OvN?zOѨIsZ ? DƠ%9Ɵ!1X %X5n]5CPߕQAj$F.Gq!_-hooKJe0`-;ߙ]l,yǁl1o$Y(`r|Ij# [ikB5f5@3"%xXJ9=VswggfJS!=#N&wh(/bEc4WQ_yN: )|L{vprN %/Ig,[BӡO_YUΫqtXRH^84˲5" )0?{3NXM1BJ'G39)/zX7O+j*$"'k6/Ok|Q9z"T29ܬ:p/;f }*s7ȼꨰ=~0£(4?'T=XmByPj^'\tM-&s=/@zE6ccyYg9g.Y}@fAzC%FaECp%&ugul̑~T`~Dţyto}Zp|{(DKRҩhn8Ea{M>RidN[=DwaVpClr/Zhsab ;в1Kj9ihw2du#1c SE?@E֞A@ҹ\4%FDIhOP\"H}5k8NҀ3>| !3agSM[c3@^2x5Pj53; S8䘟L?3 I,N83"pIEˌKNw&|׶jfa0n/z}b)r7/*vY#l.kE_g>s[Kti"p7utت3t^HӳT?(+ U\MX2uT0FTO 1zڎp򙔳H?`xC,WryΫ9JQg/OWWTa9{ r܂T"Y)QeRh>߲-rL:%btXrq.y7ʸ{9WqCb_Z4*( D@%h$_Kt;>h4t]6J/p3Cw+-c6SY?XlʠAxM`zZGq:ew >\[&L5=^8~v 95HQ65=Q,qP?$Fu{+M 0Eb9U9Z˫҄Nҗ3} >Go'(?E{K (#s d/s]6}QNr+C.;S~ nD:W/r(_g::9sϙ0erޗ/1Ma>V%&ԂHG*v9ܒo }bNpsk<()cNnIC,^5WFcՆl,+nfOkOj&-N 1 ;Ilj'RO 8'*tB+UdeX,z˘mJΊ[+R{Gu 3CRNkWS3|$Rkڏ.Xa[0w1l"9[,9`;sk>%F$=b\+uddlʚg@ѹ Tk,=а<؁i%|#iPNOd؇u؎hFiS3Uw,]{Y,dp$>xC[̓W ꨐ+ȳ|;9N<c]5S#ײZ9;Jڠ%fK{0,`zZ;:] a<0lxE%#I=P%NQY{1SSqin7PȦ_ȋty>;) sNtRrC2i ޡ>O_/0ߋ knmZe}]ΧyCZAn̎fZbSH:&Δ 0hBt #{)c)׺_>4 %:'hw:'vXݍ{bJd<Ŷ,Vg1:83gFGݗۛ&&bw4*{Wa.w8ӳ>?]}T%Wҏ&,&uFlv'>j Wnû[v] ȰK@ RpMܴvP8ȸg &)KBX0ΘT {QCPYQ/;vwX0#_kaS9pJV5r5dtCN^QrJ gɞMw_0e#\dgK\,7eRoТqAo9Hz2Ut¾ WҬ [|N m=VA$7WEghaK?՘]%{zZcҎ)=H_kRt C wkOĬvEP?%3vq;" Ϛ}[aOT-6u3Z4=X$C x"ѥPzk7Q7}0xMܲ{.v*|^ Wݧ}L)LioC"~/4H T<_Sά| kʙYU=Kؾs[g8Goe1YA^7es\Ay$%9v*\1Uv'BG/?&_tJ,lus<܏(:@eh) 5aԝ Ыc6*&GCΥN9) $s/񛻴~ZBdd)Kz-h(92+,;_.}U-k zENFqSOat;Vs =GCVֻA|=7)?u 6!EOHN]SC\ fܘJ^;oiN7tV8YU!"Y( I:}Sk Xw͚So8k>,f"-m*vNLQl_]ژS!S2-z?$[dPK: [@A-9~s9'? B(DtcUZx3IRYms)V\?aޏKP;蛂6ӶVy;8octiBM,%"$\ 6mK&#AyFƂ~xJ&T(t*i[aAn?$g|J5r?Kﵗ%靭ZKxiOW3t63t8iQ&g(1QuRKd%| [^#˧[f]O"Yxk"˴ G򠇜voij<K:Sƌz+G}Ԋо]TJx Ĺ}8~-aH'_ZGI{JкҶni *$r b VYb|J<' .ϟϧ7sf=ycV( mb FpE/S˜a^ .ٞT-ss_LHeljZk ~Mc+ TxhS5`Hx⣇rWռL)FQN͆/Uhée٘jU\i |P#C{Dt1#- 'Sc 56rpД劊ff-мL $uk(- !#RL<{k|uŅEzq}su}yRkf}^;ZRdvpM/BƏhiYe5gljL hpRL8edaƓg J`554VivoELi\ a^\i޸݋q ]!>mseRϹLQzqo>gqѸKךN3۸M,$$n 4~ C cS]iJQ.qbUb29.Fv5%tɪb2;-d2򦰎M*,n6sTi ]oFa8xf0NG8K5[긐++gh4. t IAFf *Gxysfyd 2QdZ;7FUe*Aa`HJqMSNN=Pr'SfWժLAOTNU߫uqL&)LƔWw$j^y塢&ONc/oNMbDC{I;Hw[C*]pq Cap_ r^QhðꊚL\%vGK[|ܪb+{zs[0LUBEBRϲM`XR*yYc˧tem{Nq/璕3hSh"و(p*)8k'ErUo o<$7Ȗ(.O"F he0 QF8Df95ZcsPMgwwg;fߌȮҎ ̫aPwM\j͘uZ^Eye- ?|h-o.2_<\/,z*y5P58*oAL?\4Wo>qwLv9S޳IdÝv̓95W=f $%ҷ@2Z}lzI?$gwL6ow9O'[)$K`(~~m/P{ԘŤ6ǕO5uO(' /_ T{2 p@|sՌ}x !$_?_/?_痷MQ֟O/wbF &`iVO?BJ+! )6m3zG_4ͭ4`f'EX<ؕdrD[ue| |L.^pE $ y qy0${B 6"AuyCr~BKnWKV/53DL<B%`0Ii D 5ee\\^`B* VHeˊ@0A,('1Ih5Z+dHgԟ)m "XO*jN03;Cpw钴'_>ω=~-u%yHg$\s3W28D(ƋYwp̊|iTxFE0gp CarZc}f0Iv"}bQͮvR>ß]8c΄b%\\SeBR"HmjE NO&"ׂ.ʹ;Q8 9L8iZ:!~kјxJ~,95lU6Kn"#8 Ƅ `xbissʧ3DXX84n^ĖePLre(HqgG=bW Wl2${?A8i|>> 2,' R`Q1{I 'TNԤ؍xq4oaD.-66גAxY/EIf12r ɯ^מfK倪.WI_Bq]EIȱNB;COfB'xOG[ԂB]&ӭ]0O]hU"M8sm3 -%tZ9NGunf,,dyÇbUwZ=3 +[I1ʼnMM%_ ;+XOs/QOrrYwBt{nG~f}8^\3߇/7")\k]u2*Ygt:|+1„ztKK]Kf N6E }HRƟϽ C ٸ|*dp)Ǻ/+ڍB"nx2uT`X]ҖB=“>w ΄m -ЀլjotLBn"oاXBGd8F].q3Utą?bGZv{J%"-M fL(}15=Bi4ճh\ڣ1X G3T~ @_G~LQl'UJm ʓ0ۏgHK 5ƎĎlS6JZYpoV::!_ z[~vZC@ XJk}9Ϥ]O7#=ʂ/w'`{zҢ|S$ Z'h>H1^L)=LrEŏr_9\edfX! w,TG=3u͙:maܖwnXb:z[Ipuac(luVE%mS:8kl[ pU zҶ@ {v*/<&(7Muִ"Լ&tzN̦5`aG>\9=7|^b29o~w=o:vb&-$`)%@:U8U^yVN 6jIJӭg[*SWAHpl^(+3AC)_E;L1ƩLAO;l [i-IX Q=3EL2LrՙhQ:kߗsȋiؿPϠk0>7Ԛ/cEnd&Y>p%etjiDNt] @^I]< Z]pQ5ڄOL3;bVS-@jzL54I4I݄Z3釾9lOl}LM5k{ט-:]cNE-m$tгy: 2DYDwo,\ *mPT{5uJ}Ú~4N<|?\d+MZL'#|zuNZuK5}5:}$#zOoLAH1P}>Tjx]ݖ-C\ ĉB 9\?$] lIޒXm(>+-8\j)"3YmV ?"䶇?n)F;gWP2%P?e=)0f+iz'{f1 $P ۼlHwr@JCGÅn*dKG$U$m*Gb)K4d(q$J(lIrEژA-?$!sK;'qe>YOVbCyW%@/rG:P_,R_4uMmZZYwp]Nj{qT*8 -⶞ oݡLNGlš Q"W2zD4b{ s(Ϸy2yug*VVݮ1)1!he.t'+5؈ Enh+vJF@~Ta-a&,IH|wA=U~А,J>NOij6,%A*VԅPa0*M}W]ΓFQf(JqqM![ozXbА>So/Ww/i[ZZ5`@6ܕXNEvraD*AVwbwaR.ڜ $(ĈkK6LC͌,ɰ!XZyEMy_LdSAr]^1i9uTt![788aMp_ΥT~Źp*W!P5[W߻y: tz5 歂AO&`6;Uݑ'~ 4-ťu-xLa!7ʸb.澀+gk) W瀜32[S{r`=\>=iU o??oS$<:tċ|]a_MM[FI|ժh] 6,pk),Rd.YIH 7SNsܬY7C0jbCAkVU3/k{Lj:]" 5t"΄c\Lkk-hn LVc?e:skVB .?\\N>3b> T\t@'RMtC>h E]=rRvB,zRh:N8_}H>̒"uыRH#vs:Ï J $s?.P)gĩqTeI[=Ŏ'փ'^Zm钉+íjrzWg5]=nņ$8RaXA{,3aC$5ٶ'voPqQm\M2wZ6-H0|8|ߍ0]hH8!>5/ra|;q 4[% D+yLaS2Z eYtZKC%":O7H j\Y>PFgWoS F9@7}o8dW2LPT-J޸ܼ`Y9lܽi, cInq;Sq],nb%Wb2+'q*F&A_TSz\eeC6tW!PAgֻÝ>ΛbWw؟l˫Ȼ&dyǐu%X'>̺R 5:l{2G_p&'NjFIOJ 6U_8(̖ZTې+afY~|KGl/tOc>%gYttX!.z K(s'۲]: U*XgZ8lf n ;x# HZp.{Ҧ܁)t։>s5fzѺAn1 ޜI~]s rcee4lp;ⵢx͑:(rN!V1Il&;VN:As%^5~ *A}pG 8WM<}]f\uiK2.{o-O g- Xjp9xEn\ ͘8ԮtLcP3Yg4_Gϻh-2n94SZ,M0U1-Tuhu]-NVN]|b ܦ ln6<+3I@Iۑ~K i'YMfU1 ~Ry4Uu91VU3^b?"aHGLX(Qt=ہ~VQ4W\JGTAV y43(N* 9mJ߫MNy ,0oh\sdPݰF;j`U`ߩWsu?Df?O؋crW d}W{^\GK-ʜsw.2zy[PL>e2mG`m¼$F:2E|d9E`ߪ\.nH5?^AxM5Na=GGzP?4 ~I?Ҍ2z4& _3G 5Ig*ԱL?_5ht1Qi*lV9c=ڰyN1ҘT-/`4'V=VUpQmմqNV.ؿg^w.e8%2Oi7!rnJS7‘9*Eð3$}Q P3XȐS&U%)/hr ÒT*^m=Բ.?{ W'#_ zgh8"+='AԐ:Kf2sGUSu֭vFifZd|lY} Mǒn#Nb~}eQSxbvڅu ">~*t!D5+>dL8tCa$  z=!pAQy[ZC S] 2Ҁ-*pj up?7@8dhHtܐqB: Bp6| 5s9 ɀ tXm84^t(^Oɗ}/// R ꩋ]Хјo6n&]SfZs;+xkjY,rc+ǯR #qtIȳxvol*%WUaU͘k|E\(Kj@ZOQ.u WKꮶI#c7?5<-ˡvA Dʦ;O[uSyIV;ɾ jA-Τv<暡g6Rш KrKEx${zS-N"I'd (5Djƀ y1Z0I2~n2RG5\p&P^%ݸZDžjMp+O0 \$Sjl*YK̆ DoF}V|Oά4Sc v@kcs# t*26>[ou 2sciѫm4sJ/QqukpPϥD$^|}g0!,S=aN_bC𳿜ކ7wNcFLEe@ki!tӢ+u1pWUHPaPTxm'˜pme4j7ZW~6 Qd '7Ǒ@i b]~=9"K>ƙ6W ﰬT(O V;ɨL\!m*к";h0!Sբͭ) ,nh Ɵah]2bՃt^d`v̺ez>W~ꃬ@MC(=7x @U4Ӷv+,^%"qܬxX3yvSax N2+WMąu+W*bẲzZY9Y;<,LB{pjћƟx0x>fQfKO&Vuf!ݝvs2M/pN@0aYvD+Qo?h]V'O2|G|9d'4j,Xޘ Bo"ɰ=BLgML<qtՓ ]kVǶ;κ55ŻzK6V7n s*&9{fMTD-fH#_9P%As=Z{\j3q)٪bՎ_lڸgq>U$Ծg Fՠa%6撛JPB"Z>&|4-|yu~hU=P3#SBw׻]]Ol UND݈:+7vMuز񠸅ZE oPVle6?JP˹1ʉɬk7uyZnAHw~FSzޘUʰ[F(j}U*&u}X~ü]I=VCy LHv pB ^`>xS䍎j?_T!luq1T!u 3 QI `I1FXAIɀ1"]'ݔVk@FC-J2P_ξ1OʳӕZ3]Xl8O׿IL+}o$<ҙ.d4 Wθ>II9^[x0|qz"Ж3Ӎ~o8rptǾ`?3Q ?fiR4@aϚdF)YVW)UZ" ʁ/?ySqs8<LynJ9 ͠`ݹQ9RYFyNf)O&-=њ?NR_VՏdcZ,ce!>D)ʠn +1_:5@4 H ,ߦq0[!W.a8*T:"Va 'Sۏ4tyP: խˆq?wؘ,* 5< #[Z!ժ<ٌXLέhXI]RS"8FN{jJ&qX=3g 񃻒sLc->Xm2z *EhxFI\`سs$ëIF٣l:c2}qַDֺQQji]CpΕ^x^btc3Pb|leKqt?;F 8vdJ|~CpΓS(C>,n>`ʮ߅såɹ(,bIRfI͌fzAz)<Paj ~D7|4^;30FgQ ]|Ogf8 =آ6ӐNTe#L!5hpTFE\n0ɲ6 ~gcǘ%Σ|H@X9vB.X5!jL,i o7ɏNaa4t 7wBg@u f1䷍A ʄg{tN0 Cϯo}Walk_^{ynCluQ@'D C0LvnOT+b{̇ZÎ[㙹*TH.3yi6$OvK݃L5a3lDGks-.Q#?άɍ}Z6A=90~CD:6]Ɔ :VÑr'^ c\DTú6!S$'K*mCE~eDK&,ZLa9Ђ7rĺoOGq|9Q4 6j@tざ+ O[솸QN&q}U>L.n_%PЋyϰ:$ZY̼,wLdfE=UPFD`yN= 4 'Ó!Tflen6^9͹33}0E.Uz1b^(Y KtO+cètdP1/^\=f9䳍Dq.)瓋O/'&0p_r'#z89 W/,&ES?< Ɩ=_'^`G?h(ch!6 A{0MYRdig dw kWc37c"NY'?lM> 1 ҁWu3zƱ1IC՚ ɧTf/_/nqEZ]dcw(' 9Q8ԑ>p﷤Y6(@{%ZhuJlN\#?"S4aI<(X@w ķSQrh(O]87N&IBAnHS;*)w8qsg!֍B2imd\_} [o/ڟNnϿU)֬xuILj4cƾxyM/ҙpfah5h͒\o8`S7仴t ,ށ}t6Jre8V^o.^퓟˒G)C@LEM?x۾?^er[&92z"3EztC[_J똶4AZ|+YMc*3T8Ypt.b#FV:y/HHёT-ϩ+DJ>*9E]x}~ CR`?xas2u6 w $i*U+CBg a i垬~6H1a𧜙\Q%Km{9B2k˛(0ɼuNJQȱu9 ]JEg5tI k餇h ;ܹAZqZsdk"o1-P 3(梆0XY)~La+O\%trG^v-/+IbI*Tp9& S~2:5\Qs=VHwMd- 'ƘX iMʓ_k8K% fO<Yilo/PKy8k:yyinavl vg 9Lm IȆGѤ$GmnÜ+`k %ơT:crz?M4[$yK3h+zdQInWH./?_PNiܡǐ=Bxp9^ʸUSun`{ iu.O/b8i ;阄~]N nN ?fNx/B%Hf&;Ə =${N\КNsdM.@ TܣGs-]`4IzU/iYoF*wSFs׸2yJn QIȋE% gd8-ӜgÅvҲ;ElWZ Nivw^[_;M\44Z^9"O6:>G5A:j@J^`/0[kP15k( n(`ƮTcW(4׊kqCʉ!6#X|k^Q")|薶Tmlk:;B=~3#4S9!ir\ei +JLj%b?(tl CoK6X!e#.6'dZސy-1Y?L 26\UP&/ b^+OPv"~]h{)}: R_m)w hC~|{u_|ș~2BLLOi-k7A?I^F[~Ugm(RPЀ5'.HcK>VY, [~6GN6P'Tfz a $hm6!{^d.o=NS sHjUiuR`.4)N:>4zqMYVw$xFAuh32u9{YBيnatIGα XSۿ9tῑ 1hz3|LgJ`ԅb1xd#9 S$,E@@A՟CL}ك tQY ;e=_=O|+Y$A5bl/xr @3k㙋|dԖ651ci^1(p } |Z{4<`f-AVz z*=Bm32"n؅&|)QQȏ꒗{p*; m5ly['ͰqiۗYH')KJ֎rkgNc4oU3Br+<¾䛘_gӁFS\eȿ̘n 4 - 63$ID\ nNj5bYA녀2^K5r]P:S@]Emwvj]JpZ=8,&d3o W"eu8T)ڬT( 5IwO2VMˈecu HBAb9$)UUfgي3ܠt.꒠`]Z([+TBo\2E\>~JO9KԡY+H/Iv睐 F?p@Q0߅Pq!7f)aq<<9g%`0v;*MJ,ʼnrzUyj0%h`Ʋ*5T VofuY{Ck$k7PmPfd4hJ!6?eq>Wܼm2 xVYc(Qm) x "Πf *b"'<MM?fqWmYab۩}"YM"9\ [I޴ke}O A[<!ER73H*?ˋ?)*^/3 lSVw9Rx#8(?=W{ا=>Y>)> “TR$(n'X)'_ xߝf,@drO$iɯx9C^VܔG594ΘL֛UXf1Y¸; FB\e7bSke#gԦ,/)2׆ ,wJ2">U߾ED"Z'AEi v.13! aWlB/R` y( dM+џ:6,\c^daem[ "'l So+_oB?w4:V%R&1 c`isc ,g`M5bo Y̚q%Q%?~Rۗo'w7?\]vNv]zOk¦󳭑ŖOz{^iȗ;29EQV @JG3U,(83a`;+F[dH#d6Yk GKr-ykRWgvgʾ@^Y{ŅAgq&/Sܒo5(ՈTΥ$q6 9'(²"gCs(u/q^yB H6kia Ia76ť,VgdZ܍|7c㼻Q|\[ِ$t1WVt<0(.)/2T[Eȉ÷oĩG~(K QrDrìB9nJQ?9R3N>cێg/,׶lYYn]I8!f)2 A P߲e>]FIw2|dzK,zWd_cޞ>mD6VGǘ0%Dhޘ*]hr VjSTR!q@{\c `* C竲J($[>i( @̌=VXp)frW9bU̜%OYmK{f:m:Oǻ )gNVÐx2oS-H'ƨze6 9EM!Q< }ӄkƨ%٠##2D]1gwyAZRI ! :xvvsYq,L&HM Ɍ)/l]0Ӑ99;^!`P<"Rd%dUNW\*dE;xV ^-}XrT2+bXJ0X{nޠqD,GDݻᬟH%d#];^i5~;6"[TFwyIH*;˂^7Pjh([c֕jnŌWy`ь>$TmjW BSm@Oؑ_ F:",ӒoZd?yQ!bOr%%^XQfy31_}[af܎l!KH~4~ٝ4 zrNFПhmZV7 mïnyȟy|ɍWoZX jm[8)tzxAG5fiT5֪uv4 ,*'JNpŔ[id{x(x{4 J/]9)ytC.L!,6OMb\޳ *B ݎ8Kb%[|pIut+E۵S !3IAVkVK H4u .ɑgB]ujEMSsz˺/Mߟhu[d#S#fٱM{G̑jNeLX^ǮA=ݏȎ_In7O%AgnHx$CRR#5O9mWg''ЖʼnO5'uZOٖhk6pwp  ]غPH vi (,2ki@TRkn翞UcgH|pe8dʙs G/U25Iff-[I5I@b!ir=xuj8 [egK r@m Xbj/mf%B* @5^H\|;|Ғ [̮!;UD@ Mb54d ^EzpPR`D5ֺbTbG.H,hٻH;z!#_VayV\9I{Kagϼ)=b!o2](r"J)ɽAǠ$z$ag &D':O:#[wߠI7!ؽ ܓ,0La}5/]Fb/Q\TsMRǕoa('bmZHȲ%H 'U^XX97>#+@xe~ $R-*nՐ ڒ !lr~F32W§)mp6 fm@h ^Z6? \p .&:`,j&D]Tvi6kO㘨p8o(2Ѡ]fs_XtF 9ϹCmP %vrl>ٴC215J>ܿ]N`09&7^mD urKe0#+ >9c)Z~tٴ[͇qi ۆà~qQ^i ;j.ABB/s0FSh)=Ms RM1 c-:[*Gґٴq4jp(m]MҨ?~bLR!J]ܗ.rc0$~`I媳jF8Y5잹#)|ǣқrnP4YiBus/yNO}&4lko=q] 95 #f= teyY-7 hhvK#:5O aa@z?E-6,MƦJh$4)qBR|c:= xpXRg-XXt-NJi8,PY֛=0F}'SiNx^P\g?h!?UYfpS&R,SseC[P a@ jf qN P!Эb8l۰UcSbl;g-JJczT6z|idHjܨq!©סPÑ(G ٲFu枉Q*K:n~n 沲KP%SBpޯyrinidMKb$yNCSS7[Be<89R_#T\8[=I &=֤Dʿd"e5HreWHzOc`nic~bfesvhT'1NX}NZD3dZˣ0d%qDJ)&c<Ȟ+LXrT,fa-m?bIz07=]\jK7oȨoBVBѧvz3QK]/]%?ǎ͌ ݛJ<))p95a4Uj8!{@ؐQh~YG)W>*-x~rHBKR6i:!Ũ,nQkty'ZVu'Es&ӈk.ixf DC(n3V,b4Z91Rkci>1:]2 v0Ꚁ8\͐A/+miVU~3tgk^Ux㺱 /g&ela |<1*ѯ}O?:*E٤i'IXiI^e#!K£= 0'YO>d?r^}i-ݶh}{ۚ;qiݔkW<1.o/pW00gO ߚF, qO !AF 8}x0Ғ?!/w1MQ >) p jD.[8:lx0Xn~3{FDR\`OV_r9Tq;o,f9Ϡm4P:*5DEW3gH8itN~Vo|sz#FfF_Ŋ"UL0Hg OnSsl>{jӿ{tA11/>c`9;|E:3.&%wUm'oGfJ[L &R5hKɌHBU.Wnm'j2_4|Ê--H;h y+eUiXtMa.H|q+HirO B$}x&v=jchӦ01xDzo,$Ā=Y{- J}( IQJoM}78MJ3XTTbmKU9N*qöGA/S*CKѭzp"}CC E닛jYFM3Rɥ%Ӫi:-,,&ud'f8]ho I&0^e<S|m:k^GcAJ9z gl\lH>K6!;[v`,Vރa6*8ЌbKor`w>9;9iʡUeyD7j).ē(pT&q}5b:x/-L9|My|' &SttBڬͺ/7Wx=#:;,Ϸ"mm)GzaI]V+_vK@aؑP+~&+"a8khI;MOtrcI:ؠgW;.'٤$ڮ\/I8}n߽; I#̪`']omgPi5l2ɍImhDr~0M~qaY.Ҁœ D,8: Ґ~@y4yo]R(˯u`1yrǻIFg.+9q~di`_-SH0#ᖛA(/߹Y2]E(S{G"[( D}Ia1Q,1 =>1`do>Y%5D y|YZh{-G/^L=X1j+KipR\ʲU}ElX٨豨"?&_F I)PeM i/y䲂U\!o jRB\n:A\/@7"PA 5OzТ}~ c:E;F?lïRޏ_ 3dUw `nԨ4d@3*.={z)I`!BJ,}Yų"~z/&攀*| ifXđ <7Mj &Ged1ר3k_Od;e[. x M~4[Zz> Kɰ;]XnI Vkk5[޷_)7:\8tkk7N.9+|4hR ydU!gtuKcgo@+71N:v*X+N4tY̲1~%lZV,)==r {CÛMЇ|[;"QJMMe澳T{_N.μ>sݼ~AK]6ҏK4l!HR9y$!}<q b.:SQ`Q薇q;\x;-sZR=C؟ÙRsdI; <|!-K2k=)@La:v*9Op%ۡ hI97媝?qM4 qūm??m5kWQP8A髣MP< 1 V5sPxR)u'e}nڻG͖.H{0WϷ/`XwV::l- ~s-|L#;Z5uo1~l=?q [ַigSoLAv++iּ5HZO\L.dާ+0tyѢxوP[2B ˸S:J4P:ͽr)4+7X}hd;G}\N8UWЙξ>] 䳚b H JRKNuս5[ZeJ?IOR)+'Ӂjwdg|b_Pd\;V-Oo'ިcYZ>< ח ƺWn,&e_qwǹ^2etDZa8B> 4s¥_ jȾ׼, wSmuwqg7 \I$8OPF`; vy)q@6x x/ecD㱸!GBLv*Wkq1VCWa~zqfBj>S-t΋xhI(3˫lb+meL #Zy8 }!Dh}39H(Scߟ${@$e; CqFe]BYuG# {]8J媋Zp8iA0 ;絶 "[ܠѭ1["Ss=U[vzꮸsNnCbޡ%/L&Mh5=ot?ȍ; jLB107ukO#7v D/>ޏq[lڨu֣uȃӬ˯NbǾz&Qm33S3!IFZ}.J,U5\d6z!4jo) &V(2 *16cw[CH)o)}[#֪[>qo_BVe1XW@<_X |foR| ]W #׈5z] 䯩P/$AbZHw' M8N?Zٛt H$ߓSj`/JA(h3nԃH)0z_{_^.c *m&/}Cw8Clz,楓7E6T^k*9(#؜}Ll9zIݾ!ZT( &=a ;Fs* Xfd ted[sZEE|, u?(R>4pU:.qˇj?< ؋pkwȐ>QG0Խqzfٙ+&VYaCLJ" >×-"ۣQ޽X'wc_3\?8PwHd\{ε(kQjhad6E(Qߋ& !|Q5CGNvȫKz"ϡPiL`:&*J` +w 7샹8Ww;G5ҙ"'itޙ=G24J^Efd:Ee}ٚI!W^:Ρi:)i6\Co4ͲQxћ Os}%R6Ơq U2U5(i\t89IE43 AiTXnþ^ l+|Zc €AA ]^rY\Bi 5ܵ4G&qz^4M;NJP6zQm>  ,d R@?jZ^>}b8 h:\ )fWUohx>0΃FyI5*\wOn|T0p4[mbt`Mdד5wYXgiśZcD.Ds#R-vb(({w-4 v{Gݦ9)t.*bBBwNXrέ8$Wo; þ-gao1c`Ǿ_okhx m "Š`xt13gGd%ն{vױ?3wư2kHE?Ml~4MH:.tZGZ{Q૵O'Rv :,$ך^U`7} {8u0[΃ڮlrXcw,^!#A 밓߶\0֕+:lN\LHLrD§I8lh& GM2=@Kt!p!8w^.,S4qkIyΈ<^On2h5gg7\>.Y 9Et1еe4qw*k=6jfj+\J *c:ҡ$q,֞dPw-Wr~K[5ʹd, ^N)g^<@kn@{ αB{Ժ/7Mt}j=!g1gv *-qgm_"5B*凯oǓ[ <>t(Mn,7%u􁞍V3jnhpGv}dTpJ? *s,9RON2Ʊ11$Q2Ft iSQM̃\MڨhG@ OKNYhG 7կ%@gDy3kVRN8y fFK @0jLҙa{9ޘ|!斮1ҕ~STHW;d,z}' ]8\2jqәfj~sHv~pU`YIhcTwmx}kB@Ie\<wQ{LBZьlw3UZ}f! Uwx@/4ъI/tg\ӕ?#y!x~i3P OWO*ݔ]\f?wIlm)nH*^s'YEtJGVk>|yLkӅ.t=Η$=d46pbae[! )HT7wTxU/8j<zՠ^73c>W=GrE/R2T%bc7xxy³2NB֨>WPr3ՆEZ%BeqȜ+d{{N^Kహ;OUs~l|o/O^eN2h)L~\'8H(*Gp1m,5OѡK|>27(1!~8ܟ]<FFܫuݚ.2FBiS~?a䊓)SzwjwנqusCtH-0רfi,E"]EM*0_[/Rf![PFn`uf)-a 8(\4Q{'tak)dɗtZK?D."OG&b츨X_a;rmMܒ`'ͲgshJwvքDiSwY[Zio q   lwϕU7'RNtT!IY[09s)57UWuugDz˜БcaBک s#o~X{Sma|L ; <8t`mP )S2u7+mM>}XN0bܷqK:5LC0XB10ȉV=Xe9J@+HٺwdYCt58Il݇onOnusbYGYr0'3|̐&rJE߹SSJY}Ð[ÑlmAn}) CO8""?j 4mFMo\Y"bI\Ԥ(J&&Ql=jduS飾 1g; /J?`ʘE}ؠd^"ǡv bX+"%sFג~\F=`FE}  t Z [fj3YUL8_Hާ\J/bVd4u/_yʧZQ :1_732a/}pbY`̟Hϓ煃yu’Xj^2VDq_ySt+nI{z3C|J?qeNY^qmm^)jog7 /,'lTk+$cFSUG6q%GRZvU}T/~J4QEkKGa/S5ݜ %q/(~a :T3W!3vBCs>h|hjߚP)5;ЦЗNk{ {f>F-`%??hiLUi߈'2s+D{.*׾Нo{q;=\ENN #Ү6Jw%ŠTk4H 16ATP2vWw)~h(T\Z3(h 04M mqeV‘'2Uf/+5keY~] 0yJ][લ^CO^29"/lJm;2FI ջ܏8װj Wed"QFǐB.}6TWr w#`O-=V6q&ZY>i R`7V8"&'y,J{UH,3}GFc%!T3AADUQ^kn -b1Jb .txIwZ6R fc!lts3%41T6k;#'BEGԇR9`n;9K~Sm'="z.J729W>RM:Q2ŒExWtdJml5IWH6:]V!bgqtϗm8TrsJ"e"V ר):cXy! 5hcȗޢwCuq3m`Z̴0#1G;D}' ΄RQX!r >~de8gUb]p:<'Xnjg&o4SɩvkT";Ah=,H lQ)?| / EcR&r`hgiW$}RTX^U[Cs\vnx^fmgq-^TH ;㒴,9rxIVY{`AVçeNrEr]uoyS"yܑ5@յ U<N|C L\Vjq-k9"oDӭSw>[[{3̪ ($/G>" 35,?{;՞sn)h !78=>lYKBfx#_$k{G-X,rfW5neM-xeT'3#׿kc/xMcvJ,yIGұ}oާUo9X3tMD Rl][iWq9jz%Vyeu.fq0LTkU e نKFEWʍUv&Pǔ5[ؒ99 38*! m{[y\ggyٝW9 p  #m2 {Σ}+*:~juWW'S4*d jpA &V,XY1A9IY(kx_~XMBrpORQIU )dUG1•kJ-V!["ieF/ս<`[rra7U8w^*l<˞dg|ͽa=ܑ*R̜<I17ġSx&Lf?>} zTiAŷϤ8#盎^1xOn=2ۏO14.TZe(ܸus`e{g L"Vh#Og1(B.4@SC@ę(è%>ƶFe} ,+x-T9ЛD2)?24Cz) if\S7 {aIXWQ @Om}¹k4sS޼R ֓|'V'qֈlf/f i0s}s!lY7ðÜVK)$f󨹔}G}FA w;bsXHl@dKJRƐՕvEL3_^޵NSiˋsRSs^,gX~ $QB^ Z'|;5PwpTt^VntC2LY UWK"_0M39IKߙs[*BLnX Ŭ3v]GN<]d$(_R6$ԳԌΠty[m,v9ŮMZض\3v}<,gᔬLAg?i2FLBT6ϾbǭEz/']LȝckRٖ¡Xv-Pl"\&Ì)LKD QݎY&HgE(ۿa2`Z;{19&`-5RM_W| 2 N1W%٩,;:}=6޵:i. 57Cܼؔy*j*wzgQ'!mk&6 GFӇv,4|y.CϥrDl}]xxX;zx(oՆMaߊwcx$լjU?R;> !oOg)K~vn!6Nfnؑ+f>}9&<}kU|2孺TVm.bty|))Fr.O1у75/8ɖN`8)GT-OaH!^_|_oWR0HN}C=lo Z;@zux4, glh-{֣ys}~x} (N=~ma*BxxR |w&GAY >8*K_"lDqf&sNsg8M*z` o㰹&؜^L%!s@*%((Bj7O"*/2G?{ͣ?-Y"Vm3)ֆ]"}h48I4?\}~q{]gG=WC>GLaۧCzDluWt|n6r#cuӽ7 w~&ٙ$g?fٳ7ha/M'BQlG6%xð?+1ςdR-^cH_ jwEؖ )>ӯOvZ NTe- 'H} Hخdvq,fW") Ɣ?x-QC1z, ;+Y@A =B7Yfl\H}V; Gۨ8 }}lnI5<u}=vAthTB^(r/Q}027F?fOEW,جDH e.6MM9/}@E2zP!jvxe:NC<8Te1DvXɕTy4yّcik }?$\id9If[|ǭI cL^;v6,.8{*33nֹ{-_L~4 1:_ ~Æ\'Ԑw3BT^3T:<akop? 0<n=h*/nsw8%`@ԓX{?㍂'OQ8vi:auwvwa;AwwP>뎧^ 9hI/Q3a'9:IuN/@'43Ot+ -֝HA&v H75^=5ksk.s\ 5rN)'QC#wp/[Fụ́#׉7 :\vgYg_VgIE;(jzJgz8;2ApqVx[Se`lJAV|NTZjfSk&8S7r9$i~.׏2X^Wg%+JYuiϥ{tB}N5sN+Zg{Y#Q75V<.;ϷH8>Y:@%zͷuJMZo 4=Iq'FYåp^ùv{B/x=˾=l=#>УL/H 65lVucԗsvt>\ɐ梖xJGu@E '8"k,~篵RCd&*|hHZrt$*N7Tʪ~b-јwԺQ&ܭPmFGx%"QOSD'XG2*]hj2kSD~s3hoЗ `VXmO~1{mP\kJh23)D;Uc܇{M="ZZ g[#3\/Bݚj/,D.P;l>Cr4.= \rqlv2i*Ppl%`GL,uQWf?qhSz NqB0*w[HƋ/e'p+?|9Xz|jBZHBG6ׯa0S, %b܁0 x/zGJ5sR:&oI^-}.eP8eHE)dC Lo[}vw=4b`/F\ݨ1'X;B .x ƇcSlj7cO {F SplW9($ꐔ$EBTۘWJ럻Gd$.Tf3gNH|9suŖ[2 6$}̣u `B`b+l`>%rB TDXsr%)=[ (pX^Py.Cw+<2L 6θK B^OhN@H\C[F!L7+ ^Yjk! 5)G:| > +SB8qea#e/|엽5^eg7RӜR}&dyۙطi> P$wN3=;I[cqR˼ -O ¸+~Sz9|槞b9 Z^Ȥ^dB[r0^?2Dad-js1C[ˈ2s}z#Ƙ!f*Is+hT,mzQY V P hgp<xR"A"զkUڹ.fVB#LyugSqd-R g09IHp ʛ.%&Ϥ+@ڸ867bJ٫ձoTwst~{RI f6s`(5C7n6Y X|Dh4{4cunmtkO(i\`y l芿M™PUº|0Hqe[;>B\#Q{KRYhmΰ:A087|AX'Y: }/~:fXMs"n.ÔhwsRJؑe:b,㨠Zx`aIɤYٴEȥY!^T~dmܱq1*Ȑpt \D q0RSUWN(vXY./QԶ% ec jeikH=Kʶ}CҋΙA{KίԲ/O6=B'uyA%M*K0PrƇ8!9y-ΒF|-2mᕾ ]`ߙ~r @3 ߜ'-y\"$s2pqSf~? e mD,xs҃4:, ]OTWrB=gRDٷ ֬WКeCOF*6.q񢴖Yku;:2ƾZ`#(kU z{v.fG?cE} cB[ɾ98lPFr4F(%)گ4Lh,O'q;şi^ ѭV{nȼ{\qA8$%ǎϽ^ႲűoS-} ؄a8+J Ts~$<* n˅}KF9&Q%<|%>jzά,xȞ3˹p Ҽ;u{%gJLW_&)`[eLgN7{,%5tP-0/Nٮfh!m>)]mi) z֖bp Trrq㣮z1juk=/ <7+VBo.U*ǐ?"YVKTə؜s!_mB%F^]|?~u Sk4UR2Iqf̀><21!aJnKX+r+29!X=Y fn4)X:^sY;DA7`{ˡ&.v}s.,fֶm0/Q DIczcΓ^I͏h0XĊILxK8=L# &2+*!2{qX>jI<>&1G3)!yvmh'0𪺸P"$SMlBNG+dLVw`vZ#EקR"F27Yu&".pcY:|^lܔtv$P=k,SҀmb24)v!BTln.8jaC#&\1C1L\%Jƍuu*(C.#(ɺbpPؑ{v3lD;\P8"(dP3+}oW"5wwVs;: |(\e }K P^C FN;ǑѽKy}6\0v_DzU~T #;6!wkרf5_/ =1h^7j4ZY !vo'U>Dܧ~,12ƜJ+j1r-,s7K/^[AQZ#F rjmª?&(ݱKr贚m7 1 sW`밼=ed1j*c7unov0@d#WyvtVZHnU4K佲1d?&0}A>0iez``foޅO* faJ܈X  6<Q' -9 Ζ0{["uWzNxyqI ZwzssFAyJ!=ں30U (tJ4*|Ún5{%ÝVI$m4z>guW.W[9H7fϱŸȃπD"~kocl̗OՖ L) P'͂6&D)_gu X[3jgx'ny;h$Ծx%!9mEGL'3K?.>x>^\|9p2K2 IhȨԽ@̡Rn$]RD吻utvY}Uwy qBQ|BnbEFU@+FJ}LKT ~=YkCj`L}_ XI)x\%1 ; Mi˯ݪ7"S)LvSI1ΕDSM@_a 'na+S:O}Y@)w5<}]me휴*LpV@dssAw^"sMm'`#TĖ 9~0Oi GDh u)\kRie9q+M%Kڧvv촪]o,F./2O+,m}YNG6m/cDB𥆭!: 7^D\'98mjޱMv( - HmwX_#Oc\:ߩQѤ#+. {7{J,ffwf$qWD[HʸL 2 P29QX}x ?lYaU^]HSX"e@|mH귕̋hшK3At~%-n>?C+")dneajP B%ƶbc/aVD\sfG{ 0q0 &zBx[fn,P]ETRI#1ʨ gd#M^`]C^l+w <%W^R&5Cވ&͸ynC.dƠ%a\*֋3MPwOYކ7fv`S}x e6v:Mꡂ)frxSaF:lL.yeʑ-+ Z%-j]G\! dwq zLSq7X8w@$Nilf _֩V ^) JeS|?oѼ,Wl0qh3PUCG׹Q_Ư*M!LVd-W<5ۜ;+Ԇ=90\}7|fڻdMί`be+Fё<ۮ+'E~6OZZz!U!N*ꗸ[1H쯊ҋj,!mK@$|XX^\*XRc 4:~<(OL$b~j^ճ^'Qؕqe_Pyr|ԙ=wI1ٽ#M$o`UdyGLb SKN?7_>]}>>Gp;MjŞ]>{rzI?\ V"-h<3 b8Op0A4[3řTL6ȩHgWZt` I6ͮU33בM$%qTkѽ7&_3xKӫk-II=Ly'tbAFw;b^.PN?+wço?ۻi8 %Կ>޽aR>p^ݪKԦU9>NNhKkVT=1_%&ރ,ezƤ|ISgVG;:}]!;-%O%֮zу")F:g ~v;rw.?} q0'šxY%+6h)]ڻcqLp3* Xmt꾰"Lt,϶گ\QFfƿGc*B>>Ƌ n:-uwkqT fKGKMrS#Z`C8~1/DQԟ׳o{C GY<m0܆&?:~""bX[tۦdi0 AdIae^CP^O^A=1X ~ަq"x/G y6Jn;kkGjiS8pACoE)ܕay3N dLbc&au2#X} GbwȲHkp[e0HT@}ۑ`n&X [PoX(htj9DWfV9a^e>3l3 G- RdMG: uJ_ aITfaW o ]'蠸EhDv2ͣ!8'̇\﹮!>z**H/SnE?0b[4 Ҥa<"~f!*.De&p,pd9f\Xĉ1w076+^f ´C.wcօ 7ṽ(%ᦷII]-H7)n\2#}[Ev6{c!;V<^j-oW}2hglT4OMF&k1a8'g9<?'ڳl̿@j6N`^ Kŧ-{K`mlnP%ۻ|w=Զ`rt(I"݊ʄ 0%U5 a/peqe)%S-SJ-Qm(9?I•E ,MȚ@'qZo|^8٥`Q,S0ۮ( M&Ыu 2(+hx<1\;SSw6!?U@QWN>Mㅠ&aJRN 0]O><.}@?7%N' G|Cw4dO9khl,|Lá+wo%9/8sR4"=hp4…MP2<뀞YX- \v#.IE ][/? C5/?\]rCє*&xAkJ(^ooޝAxLSؤ#R8ߟiw7Dx* >6r޳e~) 6v4%/<(w@\Ζ n$;ןO/~k72r&wOsx}:n^s@ Fqli $HYQ`%+:p+ YS}+YKnE0|~mI/mWfYX֞[ǴL| 8XI&8ݲ?oo9dϓL!S)B+}d(/{H?a؟nM=ZG{HMA dzbU' K#xыk +0 f-$I8O8`g@ϴ`:O~ ȃAu?x$I'9ܿ^0bzd|%f9sVj>^Gb6k(o!;_k f@8I7#]E`f?s:\'D` D#BYC4+p>)FNʋ j+Jjoܺ&xER!: dU@O͆"Z˃IdPoLmP%F8Fc}:u,DMvX_);mxƂZY LNf(>EX,Z$Ulh9%L1HW6plLŬpuQ4,tٛoֶӔ tdST)c񘅼J k |[-HcrK>\J&PI'"gcxڏBSHNCR1ؗqMu=MF`MB Xܝu?~r4ʒkO- dhW~^(=Y"t9X;ֆN~>&(D6$4 ΁G1tAL_^'n h/?i0x՟F:0Qm 3S1FD d/0݉j[nz/yX9ej82Ѷa9Z {)>wg~\o |Sc 2IfKq")Rd6U"%c6$Ǔ>l{r9q/pRr퍯~S@{3<źqyX+$>ÿ~/OFdijLCG7X%ZtHɻpUC2 ǂFIQz Z/l7@8Xqw)7.(]IM]EmknT( ,AN}$ۀ1^EW,%NDֿ0a +%ޫyUjRE-֘[M/!u~i%VJN;XxhegRAݩ>;\(ڙ0^d>= HN.uA-W$TqjC5'rrcZpdE$ADkz'$9o$\[] @td;4ss)!ZC{HcG!.I?%:o_Vu[p)K^+*Y>Mt?.%ǯf, tdy_{>e*7s̺=9RPmPfd4hH!|.{W24Keze`DarSc;gi7pƈTJHg:%FU8^<b>< i]-|ߟ ^8z_X4q'7?Ol80y}3 Xww˓ܚDT\>g=+%&e0fS$HR𶚄RJnjj@drpW\rPPfWiŪxGLӘ{F|儨*.0˻x_ڸ>-age[l=S>j)|u|*ŧյ(B 4o$zi2Y *O@d5 SќA 6y:-/\`o'$]|Yh j4 9QJ4qʻ1axlkwn'V6 &G*|JSr*u0#` Bxb[80sE@%G٤D`i(1"qSGYkBһ'dae0 ׳m1 @ONX!?xTE}{=;IXO{/WaL!Ϧ_A\$ ,>߷iFl1|kHG~0ùW_Onοd*ec:K8iǼ527`0eV KU!NQso&#дma\N(8:3a`:l7sTR{h+$moRE`ŮQ-KisyS8y_o?W_MDЙuvskyc=չ%҆4Ϫ\Or6GK.CJ͵SaYX3áҎlZ0bB'߶6^=).7>,2o?޺5Xԍܱq^hv̀1D4 @r*K'X-SU((d$0AqIQΛ٠\F'_S;ԥ˨52Bnq0XZi<Y%6`jێg/,So9 bu 8@D(2 A3Yi+I<  -w3qZSfCyNI\Q9f4b' 5Cl%27 AAí6f #4̜|$nhU9}*@1X+0 ʉҤk1%eO:XNp>poHsd|s:]zsW$.и=~qq2x! ]#qRcoJxb$8)1DtfJ[VtZ"%%R?O޲2,u .ɑgB]ujEMSsquoG~ymY >[~{{G̑jNyLx]"ޙ{z*8#5%wۓRݜ_:sCGn+$Ij})ULh64:U t׀=zZr[Cޏ.Iou*gZ7"ϦwobrR)ݎ*WE/N^ϱM]Tn\gRZRVhTC%ZO‰M";cTS?4U6BћŚL5W@aOrkszwt\*"/y({{ZxӻP =ءXuF@[YqZ4y!p \X9H[_<;ICZ4ҼUUA-fMcg\nJҕw#W3 a!>oq:ߊe ]'̫ѲM2C6ݨ3-Lʹ!lF@cޒE`*i 0TQ`Ϡ&(H1݄_[k #ҙ|<&,%\朠t:߉(aNG)NHa.[r4ȓhsoNN?ܜȕBK6ZPsR ɟrQ!؁[\kRwC+n B'lųj $/1;BG.[ S yFc+l>ְ%fF_*lT V]XLgvӴOة"vha%+_,Jk(0 ?G;g0hE&-jwAj%M'-{ )P v@OܻrėUX>;E|u)Wa'݂a\mt9P$6~ g$r$a\2YVuV qMRkh)]P">%"ڪ@-eKbKs3d2 KkK2|<udA7 Z /WQEeMFRA[v2ʹW.># + lڀWYl0$:DMt81 Y,i"ydמ1Q%pPdHBC>nxr^bJ0bCAm}UdC(t: ߌ.%O0LlD tKe\#+/5IH?pk;faCΓSl ‹%l|qn8 r>&nu :zad5ZNgFK^yhP܆l%ek\9̦yEˤ>֕D+:`'$+4]*)<Opl2_uV͈/|V gHd 0>(t\hJn}VP_ƾb*M+ ?}G"H/f09o6sM@whH[|*Eִ*-kiDGQ=, h3#ޮuQmM8[sSE=65 I1MJPgߜvo&A?rA FsK2"\+qfC0F#'S<8 !P>Ne{pb"I(b05F8tZZ#7À 1wjg_zJg: VB[ qɱa3+ƄXv [V}KkD͍r0 K}ʪ V'!'Fk6mJz sUV*,EJ$8Cƨ< 0@VXJ)0d,&c31x%Pђ n$tgZ,rUF3Oj5lgS2c|;A!8.IΒXǾ =\H<)p)5am7jؒ!{@Xih~YG)?*-xsHBzl޽*5қx8Ceq[\|OŠj6ҥrL'Kb|~{RiU}$*"g(RrRd`FwI&z ,33/k)JDOIZ{_u#_FNyp?7Mt5lrw:Օ|~@ H,!ĔhcĦƆ:rD=ŶI8=NnaeU[ .n"]=mB_>|~RI=xePF#_Ǚ)8*h\De"ĹiAL4) ]bnHb3sSʱOeJmLP\f09œ\|ܥpJ1r^w4{O|֬-0$;g{`|%LCoZ,+G"dp hgjbM!eKQ':tC0<~͢>=ޯ#6F`4v?QÙeN"NYAim .'z[ϹKSۜfV*(aIYDEOgHY\*r[123R`ܪE1a'>z+6Qb/?0pu5;:ЉH8"Rbx6WWѯs:(\1yб+M]zIk4)~Z%-Q%1xy9{gڛ,E = ׫awKYDcABs e gl mH>K6!+w`,^I2͌8Ќbs/r`wv~rvzyvwd;._]}TB, C u坣]ڡk nmz}suGk/y \kL,[ruaJ<'61U(GAm+J|y gQp;> 6Yg_a L:pZpQV PL(֭[f4QsEm.pT/oXi4qЪ<<[QxD UE~d71xDpfsy&P^9|M;"wL%i6>߻^"Ya伿(lhSN> K"Zȴ0X[ &f ۹pZxpzrEČ'-iT)Q{mBc܅ S2v?gဓZdYmD}/wW|\{tb^$&[?N |k78J`KnDJjESUې3Vw3=?C9m݇)?XO\Zt ̥;nCJi0R._bwOo\W)r|!g|fi`_-SH0#ᖛA(7߅Y2]E(+QJoC/?Q?swL Utd.Njm`hd>ٞ%5D |Yhf[^z4,J1(>P[YEo*M#JE/U6(gv.b2Fh^wn2-Bc"*dʐd1Hϭ jQU/] .+(\ʠF+)˅LnWKtt#hj~^9.?=/W:.4)gMWg( h[|7?J~2pP̐Vh/"j|ճ_O?W?ts9cN>\]Eu-~n :kS^ƿ5 ׃ˁ̽'k^mZO>I V2C9x ?(>柄_:*;Fz3Nd`m&\%Y34M`,B9l x8{1n,/t^.t讹&3 i*5ZN sܨv[i^ZH:(<TUnP̠:uo:b;uGu{Nu6f:-vEQfkc SڒtT8 hqB2ٟGCO}>ndJ<7st}TճηzM];jCW5xeJz^z@= 46ߦN*h\ `GZ_v\q3QjDѳSCS޳>]^VR[e_ϾyɦTꭒVuDyɦ:w;.& ,Bc;o:yщwTK ݚ=;L٭Zk!]:tʪI\cNFjߟv۬aL3K Xh">|9"P7Qs *^ 5Ӽƿ&^=s$xbZYՌ;dNK;!䜄|qS X e0Ip͒jAB{W{Y-nc[S$)Prݺ I8Z"o 2UQ%g &G9VP-T@)~"o54p4_PUZYn PTVrZ\uX d| %%kC/\dav)GEۀ7Gj\3 9@ٱkO`QW *9H+km09:/s)GoUCYU><뿵ޜyhI8Nbb3Ͼ{OSqVXy->rrw]JiPanS$VTmۮ[u~ΧaI˽] U<pS)ʏʅikҢf>7i7;ֹ%GB@CH_!|El\KXES%.0s9r6'cŲ\>ȹ 2(.=\T[5QO"PQBMm@lZzQhf^[Ndw.و)^"4Xh[%C 䬀(6 B@[Z0l͠ѮA\Ն}*}j[ƕT *綛9ETImI{AhΠ>7FV΀nfٖi:rhJsivikհ65:AjNVmV[͚m%~qq8 %.j曪ߩX޷|&:@1ԨUKyċ)i<8&Cw+xͩ/v-mvޠQoF^֬vwz0 ڍaٯGvt9w$C 'E JpAN ;۪[n.yj(W!TkRΧ딑J$ VL CZogx&ňoF"~i֫=TsZlx͐rHcpC׀ѝf |k0;wv[khF]s[$lweY_}%RI.{i7Z0! ȩ}9 \|fײ\;|Og3O _fUc{OƌVpbe_?H&jFKX_w1:?3蜂eU0vF=:I ҼܬӺW!2lC7*P=/͵ZJ&KnmgבХYm)ZFzɻÐ7YӲwc YEg P شYba]QK>J-[af+7;KPm\̩pj$$4Ao:}gsN1[,X:žv*Z7d};S`n3M~WV!ņ~D]Ȕp59-R4ݬEV)r_3Jv(ᥤB:.gGSB3|BGHV`w˜jhQM\(zEozto3rm{څxm8hR H[aꎸyfQ Hxz<^0)8|q̬٥cSgte8%!q p'R]Gz!qT3q=*1?-JDj*$՞؅%f/ܨ :ZFʵUsuϏ| [~$zPa9c6~kq_o/rzjho!ݏ  m%[_?'; tl)-vju4~Bohۖ٭}`B 6w޽ut^5VXL?n.@+7ǎ\ٓ]dg6s\3zO,y ;u+ @Œy#[Ny!-f_2%fakmdeA"<RYC6o2htYP-<~mi+4KM<9 /&sٻE8<#3F#'ѰI"X'fA R47jЋ T^jAx IH B4:wDS꧁mad6Fk"Q0{+Fċ# )C|.`k[l瓛XJ:@rLl}*gW!RGmlР5x=ti{.v+l+AOP R76^Om:U7x4 xͶ}kB+yO$g бl׻N8[B*(Zoi2u)` r99(ΆGqJ|MMa'n?\m4C)*KY!iPcʾjVnsEpۥR"NI԰K6JD>[RK{eVU{1f x:gmՒ@YfȨf0P2n9]8݅"iԲȍS ~:pgŕG쬯 ΎDe:&mj:*hS:^m[] Z5'ZKo] La4}&/nW>Vqsf#U7H6|mf ;!g! i%·AJ2X,Ġ 7ag"i93 |R/bRP";A|-~gU)_Ɠ _̌oN0bl/3'S ">jzά,yVj̮Q4-z# fJWWd@ְ2SX3$R/"<Ĝǡr搆a3BWwZI^3K;d|˥mء6aZݔ\8#ō̆AS[ݚb (sAV{80-nku #0j 8YƱ@KX<t./om5Rcܜ"|i%{1qXy8P=Y"t2"%>}  31.n^mjnj ]nEw}ø rԤh}|y0}ϩl}bpFdO;4-ڙ RkbA"+*:} uڝZz>Ī{L1An EőqW]݆Ϲ7'g {w7lREAk(4VIDʇ;;zk*Ϻ +4,vmb= ݧ+4T#{s+"y:d\N1C` tI!@sSx9xڳ:1/u'3"APKy AP-}hLB;QlNΤ OoBКU;*MlX [u2"ԐoG̎k6f@YSt벃d4oHFuE,J`%o$}0A>]|OowwNfh5y^q#?`ݞr-**DP+E!,Oѳ#x9XQk2["?\ND"rC%`Xt}d[&4^,䈩~ [Srb Mh[K9kF+{ 0v.m܆x%_1ޠk-i^f*TeBix"= #yWg tf']{N6byjGw[*Mʟfɷ5σbc;&w[0]%45ͳ팅N++oL#\'x&IY/>m޶s Iw5JC#Y}X+Q@]5]-#RTenWۗy-d%-i˄M|^]-T\ Xôf]I_^Lqh!DSdye[7k-ǃg0ځ h4w_sg֒E(v~ݗ<5THlewζ]vWN%kF8F}#Ck&HD%J' I5_L~xU>jJt[ǭ2׫wgeVޓ5(ĭ2`vs)s` DgLSFќ}sꮧ>&9+9?Iz^o} '-hM汘T֞}% dR{"Mɪ(8KM^CS>{`ZF .3ْg|,L`ftE1- Z]JxKǵO7>C+^Hvj+Ul7:;Lh@eCL^Qctth5ݫ+_&^%'JF.dP`"![ʐ/!0E܌ aJ[UV׋i٦4;jw{1'&IxH>4#c`5d1\!aRV: ]J< ) C1d{0Rz}I6IC7:`_Q4lEѰGVDhi:nF(+L/v{8*-Nr66-iNA 8 IB A\~~cI2QWd[R0˗XL^ PVA.K9#/RtqF\ܞ\T9!RCv m?]>Ö_4^Yt<>r a+6$Nӯq DpMNsP\uۮ(C&5bInھ9}P[G"8ȇvo֙_$Q6mq'~ՙ>!>@BV¡5C^+&x+nCf^ρ,xgřE= G,oÛx3;Vai>E<썝x΅Ҷҩhu-X ޒZPțGIv4(/Vwj]&̙ ?吓t1Mz\L dy`0*^iv=57Irhث CUm{F|ߏǫ45"Ye\Bi+TD:90\}7zwIbWi*ؿ,yg;k]D,8 1lmBb$uiE3cNa;U3Y2 8xL$p"1+Ԙ5$xĒY>bmn n Q̨7h ,:?rMn[aW#/oU 纙$͑~Q}1RQ\tf3Xk95QuJ}˧ϧh!闚(2QأgiSNNoϗ7>wӟ2*^d?iQ4< L}p0jӏWϙ*9{jxl*ZSީn^X56PW۾YovW-C\!k'ŸeUs2_*T;I22UqfulL{Y"B&mRb"щ8,Jyܜ7s.oƅ&48aNeiE1RܐܲV~ޥ[rNZe̾ZXh>\{FUrߑ8Oܐx $ZdP?^WMP-NVD{V`m]RVWf吒n^٪qj0Z'j $CWY.7*gAp3T9 kL{\G{N/^3fsh;mgU} -Cv$ Cs͟#I mg~2N,o^-S'Yfu\v7o]|3y__e2 ́1?\-U,$ut4;a,J KGN (~ΜƢ>v2ނT*^WaM:Μ9;5ѬL.L߹ C_(Ӂ!3PCi1ZY8jzPk/6j[cb8OqimM~f7z흮 \lAjco#=굒*}qål{n(X2ӛ.<&*91GWN\Z%]kۺBEnȩH+"LCs)c\TNW؂N9̓ VQ%Emf 6'Y+ݣU=dω*JMlK]|_tw}yuKaS4Ӂ5g>,:q_BU.N1oG4B]U8"nNqK*{qou8W/h9EJKRe/Dh%M/2%d8RPbĠp7b~>kd6!kwEvo'[HI^@)TaZr\@3Lg496n_zy}U3e_Ƒ+g\1x`m879=K`1TKMbʼn9m8Rg\|`03. W.a9Kڒ:(,>NiX}pK [96qI;Ϥ5z$R@\^C_+Ӕb9B`L+3-`#|^/dzN;ҫ`/?x< O-+,~G'%E]Ep {g tLlRy~Jr#J:ʳJuS[^kՂi.fݗJi,W|N =ɱ-.PMB׿sY~-zsy1MvWڃ|ݢ-a~IRx W&-\ۨmU8b[:R0'n[YZ K._ @~)R-p]ۯq'(6ssgU|nکlBDE61ZUgi=!fnjXOk5oRR-oe:J8# ќp'7{GPnL[?NYAR8U* bɚ{_!LYh_4XpwSWDmI)N2c溏SfCq0 , o)qvZݴ@ GH%c'B̸?%Fz~w 1-P_ MpJ':<݁e?mٌ ٕ0vmYwmnEW0t"nuM4K|Zj]+̙IP8XvF9j@݃9+W@rǰ~.:dmwͮd^s]~N C \qd.{VJ/l k|i?{):曧fƶ:@J~wϋ7Ƅ7à 2c/^lR+da EL'Vaz6XU{Y޲:~5P^ \)a0ZU;z}Shܣh}&ӕj\m|88o ѢR\o U$MiF yH7h\) LJLhJ_3*Z|M40biβdpѩpt Uip u5'/s#R*IL%XHJc]鐓o,h}D'[h F4Hhu?i+p$G)ث-Oe33AFtL!yO~k8#fpZw×f]&9c 4* D{%ٚ1+=taZs61|BԳ{"`izX __U)vIЎp#O G+n'[\ Z],p,S/҆t?pl`-0^eo}o"a;(Z z:WDgp3r2FhZEQ:W|WFM;b9SN95P\N[ncAaᦄÏ ed`?ZsJ C&F8崐+\ymOAIzٴ:7J\Y1)Tv1Yki& La7>u JC' BIDE*ő+z(bje.Ԟ`.۩Kwn{k1L)[OyPVŁM1K[-*{X\DutgU|8Di$6%hK:%t]ɭfZ'R*Vbc# F@⏔WB6) 1c/t| ;mpᇶow UwݕnB蹣I0bl{c9D.Q4Z~niLŪl?zVضJpS׍S*.1KL /Z1ˣV^ۭ 3ㆦCM z,mqc=LmJt"^\+JJAܸV[峳̂9atЁJ 5MCr҉*LX]P[%~ԁPE|.* O&d&Tn1PNp:?y>{ݼ}&&G aU2B">X,QǷ2gU8{4}uWss(!i$b.rD)j|R-C'R:If$FL)'ğ|Nd:*ye8m&>o)v@PӒFCqs` V2l*YDM?bߺ8"h!p =J@X@J,_f-'; yGW/m#A/䏄B T|TV[Wa2*~i<1.ȦdW>Q <+eo%d-sm,~<[F%\ e;Ax0:EwGs\ w}B8{$XI6\qI9XY-k;|/E"9D 5g?%NY=^XBGŜjrTשּׂp: }e SJwl^nd;0J>Mᚃ%kD [ДX໗3:Nw-9y"rbDi~&P3$ni1ᮃC0p)2a‘x" ) j(a$|&9Ҁ'0kw&D w5'bފ{v9ed wA)hA/h0?5_If C6M6D^`5:<ɥ4J$MI! W-ݥlyQ7os:9eq~P6"aBrT 2?81N$aw>jgoMܿgO_ lL-3 yMΟK1BN;(0K!8}K \waҗu=ƫ92AƞiLBcŖIb29t bA:GWb€jڂs cKJNpy?{gxv31V(p_0'4FxЙ"ČwJ~U=Y[^CZALZP>{ @-b!0_x`c&"y^":-zQpn2C/$3QF j+%n8\#E%A>hc`MD.颩AF5?1CZ\xP~t)FxU yH) S + ڦiB4e0V:+WTjtJ]t*%/SSLCږvUκc\m:?sc zy/‰$Gi0s84] JCg5l0ARSB*arD] ekg]p'(ȚWCs}=|J#ڰfIn0(8x(ETtBV dT $Yi"Fxt:kes4"Jk$d:e@ SN"E܄eҡN2v¤׊~0nfĀ8nn(!W)t5uAk=Ud-ᕏaMC<344 o8muRq~ id=Mm9.MϬ9bt.]_AWBJi%[|vFr>%82aT\i#¥%%.aEWpo, d]$"qF)Iej`)K»8?ō͙֢9ڍ>?EnK7b/}]Ѡ'LVSSe HlFN2pL1nձĿu㜩g?\ܼwu S&뵝xص Up 0.REՌ*6QNMyg E~?Nwǩ=nN+GaM+uskGe>6~h7,/M5PA6 ]Bqߺ~/wZny de! V6vsv4 )B#n"<˸(~dm)jAnXG$x]d1%?O?6#x)I!`5 $~ot7CBHu]b5=Nq~r%RIIXps:p+#xɾz)TpON\P0>_ xR9%934fo=]6'q D&r裧?ڦ+vSzƶ:ztF[fuWO2\E#E-0^Q2ӈJWY==۽z폟>~xPɚ^T ŭ>>˂'Z`8ݾVGXXOB%N"Fgnnp9$d`2T>9C 6'LpLAȽxuvJ<(ٲdXbvJ;Oºl~28tXKe-yBI2 UUMc̰Er5D:2a \S:>7M 740Zvpۉ]'Na~8!Ā=$x1. q2,R BrT^7ޡB(vgEnJ)t& oSc+^=R{w%ِOP!M gԄ;eFyԣDŽ!TtZꉟEcSn^$P_~RH%$2rw“1/-ê-:fMRg 9t(aM}JQԙ3stw*8>?F>.tL*7..u6}E5V>Jì.ϲ. Yms~' +t<\c Mb#k&^24_,lo>(eΧ;zU?\#R~?lG7cȃ"c5c%,>e馜#$_`Q y9T5e{g 0ƌ9 B jLuK?_W'_A0s tߊ'3a'hH.ycא"d2EDţBah87j'NIlə<`ED=M'1:w:c^ꃱ@ ̾ ̖#lK#NKڮgo\ $Te;&PgҼQْ֒i]Q5挬 PR&`*4Â=t2$G9Cm)]|u8Cr#ly"}RZМ7i.:~"%`fɷ%2O>j`J`>8 ~BEJ\JLs/FpE3_x QUW*rzLAv= n}P;Y\Az# ѱPPRD' s%* 4:}n3\KUH4Dggz[3VMÃy*~ƌ]Y_HZ^o'HoS+beqcxrt`&? *SmimQ׫~aUyy#)ʸu"~[yY$ *d_ =@`֤mS?019/J&w2JϨ|ң2-`d9@Ox]u~U7:Z vD!%8p dꊁAV\I'*Ma<>]0(Z$F`=.7`I–97^#X4"Q%Yl8SuEon G++A={-Rv݉ZޣkzGR`öfm({ܫqkmN3ݲb3+yF0nnxysLB<nbɋ50˄L!)4սvRChuD5o&k9z,UK#*~A96t0")A2Hiu*e=* EFyPj+>=z?9kro 0M*=,Gkd {Ikíp0Frayf=#j=6jt#Zf`e 3wޟ@++/CfC2oeIf^+'5X[evssP;ozC.3M Cok8E)d̞Qt ei3/7Ik4QUgA fA$DMLռ:#߆x/~juBUj NA̹cf6v27>~8~XO`L6Edz+Ӯ3I"@1\ KTShBwir"9ɨNq鞄)撩^[.Iw(-3ggusi5StGDq"O T|GTմ#:qCbd,Uի-e2rn2FELctHVB9ipqhG jyj~zޙt$AA FqԜ+.GRͪ0x\؊z7#MuRڒ4ytxЗJ* <ɝ׈xXaHt'2W%S>paݾQ][4oJ_,:N.ɲC&P8~)fZYfZpzv8o30]R&.+^! -ƽc@⡝SVbt̨]qsEƤ$s5keܮQ mb)4͙ Ӱ^u)[`lrhnvp9 lҰglAΜJQkgQ[KKRH ~1feѿI w:x! ֦,wᤕEwN;SzE9: KP=1IvV{{3uRײVciǹ?"[O7iіɃ%:1bߖǶg:/˛ l,F%ay6Vv< {Z&WA nKڣkON6r|{xÔa?T{jydU[J%n\GJ ^bZGRA{ 7? ⵒ' ^j9'ܵB8cHTv:v&fw̍!o=YNq&> ]`?ݎQTEj~ &# }Xnr>FPjH^|!5_!S Nצ-RVId#EVYdc {9XzsĥzwM F: "y,TXnfY!\!&ԾNݭ\sS x+I&w*^Ohp ;U\mP–̇aʜ" ?8Hk!1<ު2TɂИ$fZq>JX!^ʛHtmJ~۷I%@"uwN_4BW'/!0G4H)ˬ1rM! =9Լ~b;>|?~:>]T2ԑaC+ͬx!aǚ"K|܆UCvl)42* IG85-%d%:FR,% o$Otvj ujМ2Pl:}>HW wQpIa%"veSJ ysE,GK5(3usIԯY'J=?)%'Aw21Vѹ }_qZQ{+-Bt_pe'Fޙb޵t g5P&o,fLYSTOhO0& VL w x8hv~vec6)k\h+oɨd̘Y[ 0 '*k|F+P0#Crz\O>i -$I\ʰۼD6OOh^v#Be2$&5xJpS9;n'Up)NT xiu (֟p )huEe跻u!̒ [d+O~żEWs8b]gw}woeosϙF-oxqӷ/}ItE:%Q$KJc Gv.aֶHPd|5m+VƜE< VSFL>޼DbA֔X Q>FZ1u헛,WGR*4*FLW—,G[W/£,.H񠌞$/ MU?&il(`n{` {c,.AԸ;VdgB2>V@j@h6Lk֖] (X QH;mAF ׹ 26$@ߑRiZ c)"wjO9єFY>$>rx ci3nqdcJ(_eeϬZͦ8ބQbZLUNmdٔܐzDT%끼CE˅hnO 25#0řT_[?/GL6KʦNR4 :ILR7*v#|!Fs3[2 5}$Ň?~~˲dQNZ^)r,HI' w\(p(v Ec!e)6^/vͧ]U9twr99Z㿨an0?Zs4a=\> yI NIMܖ5d"Zf<f譞%a sDhX6Xt9Hk!$mB $Yس%ODZ}Si~E O`(KSP7 4N )[X֠tLͱSKv:E?Vʍi ž󂦼 Pk:?Rn3`U}{2ݟH dPA >x.]{vrߺGO6cvAFE: ʘ]d˩l98$DfYtc4QS"Y%=Go"5m(?霑n2^V#gbdΚ\ T 3{?SGbI? m}2APNs dZ@=$ӂyal#1a^} ٔy?~x{凷o/W7]ś%";PV*W¡{R¥+m@b&fTbS.q-$]v3~)"UIDgU9@ 5k̓Re[Te6Nikt(J1.+]qӡϩk@M$| ,B+ٚt_e*_..HkGt苃1^;1GA UiTZYr/s X.*N{)uqJ֓U#1'P@(J:WXp}ar5䕚,\xsa)^:-貥:&_CorKS֒$&JơIɶͭɅܫ Ǥ]ϱSUb;}^ra|+ C|3bVCΠl| d9$'t1Vf/2,(x ~!y/F蘀dc%Fj`՘Y!0ޔ깖3z3 èT< 1[Э:hP>Evmeke$D%>!Ω7.?]]|:"}C!q(c5[KAeFwO<.!i"ꈭ#9H4c65I¸6K+oQnX>JWY.MhWY~ ɱF]%Yz,ٱV_rWVpN:[eCB;.>4o1ppy۵^c۰VLC&@YԨL leф7:blHu^LA- 2zK`+ NԿAԶRvZ̦Kc^-JK8 OBS<>vv1Zΰ4%?+3`=c74/SzXWKM_­^ܴ-)T(+Z%XfkBkן?\}:o| ,}챲3C 4M{v~}x})x4mityK:dM>Lh!Z뵼[빟PIaIř> .*_6xd̟Xz2KlLHĂʻJL6^sk/CͤHH!ȶv_t/Qtdsq1As(&1wzSʴlFFxf) r[v#k/8~$shrv0Y@7傿wGHt:{^:{^:{^:{^:{^:{^:{^:{^:{^:{3{URM§6 Qi!̨ Iu \=a$S\6PiL$cV7lgg -8o2Ss/̝wL<Ɂs&ܷcfP̂Rߪ\kɲcC%i9Nk74[%MmWiɶlwֶ7 ,h3?ELكDW$rʄY,s[׋?[\gי?dA20CDr,2͒6›SKmks*e&/C+;IsTMvOn~aڪ욪3-/t|yK-[-Uw\2w2\f9[2 ׷w A2˫X#wIGJ*v-#oY!cF*;Nї<){F$>Ơގ3!wQY8ѽa'K!D,?+X1a.E]:v&>D3 щ҆as$e\u}ӲIPC muG#swA}}s7* 8+\t4D~SE4:*oᷯJVxwM4\MK D-&kG9Xof.e[EBm)ݬ1s1nd>F3k_::j(^GɌH9@=w j.Bğ|R c;nZxD<\oW;zMѝT=?UvWv.(__Ga.A\tpYmN +C]yjZѴN!]o&sNiǸWÕ@=Y6jQ3[4`B*-;lwqgYC|mˠɏZe$N)/Ov(5Yr&Ws * F/2=ō1|C_a/f.V^7l-GeqKJ s#qzbeBj[am'li>)稦fGIAI@$@ӑ,cRp5JY󏯺^GU9N]][$M0m7)޵\4GwuBi(t_N4Pr,GGCh['I}@ O`^`bC^q`ApKQj pתGHץݔ(ǃiV_xV$R(0i%4`庱V TI$ȳۡ_JT|{$Gf-8$v/ _W tccrL@>>U؝$&&48|rC jWnMiOp2bNWN="m J-;IbQwT>l)P*-;k6xgԫP} 5QЉ6¿btc[G{NW77ǷoV}woZZV;ٵLTJ)QVJ +BIZ IGDc׈Ipv{&m_e -h)Q8{l@JfK2U0Tܔ=<:/ߦF MI< v0w/?^tvyCgzwԙ3MX;ʿlEg%BYZ0d8-)%i:_.- ;g*]gus=/&I8;>k> 0@Ǽ>U@XXc1qC?ʋ75*REjEvKY2ʬɝǷYC]j&K~968Q3-ů[2I KV %&t0 o9)q q_2OCXuo%/xL05k @NOa"ȴA9 xW+9aw+-~IN|1ix љ"Yl],#=(/#Uf 4 7{ 0ɶvR(aqEw(;cj;\P7x-{&ˍ>֋;%>>--=Ӧ}o8']mqC+1Nu%o2EMI`WwzrP|2pF]+,$;RjNj}vG`Q>l8˛j3yԤ@$1fmF9{N^ÞBat>Uh`B07kMvѷ w{G_#PR:uNu{<%^щ55.ej.Xalmۄg#V%V*Ӎ܁J)!@B}s</9蝓> i݆d)ihj< C1 =66u)2e+4%m0'- jG1g"S|miq4Ke8;mD }zP9;I<]-Ӡ1($N*i.J G윜,al ]+L 1,J:%,GCaԞ~.&-a`&"X!"Fam|*TthbeGw?\x\VCY*=tg AF".l$(% BM_2֑e ʏ?ǩ10GE FT[؛RqCYwoDQ[Ak<4yt#X4]쭾Q2 7lXvò|XbO i|'%ݕ)m/yCW~ʴnNDNtSg<,5d͵S\ѫ27jGIh[Q~ƯـRg?c_?+N`f gw"x23zlrn0Ð]L{WAsj07]׬H/wMT*@AotjR\j$dvΊBO-^zݘ"QcBt Lgug[*؏Lb6cZx$ENms+V V)3x'2e})땚PBƁw=`Q -̖K*UfWs`6qektk6]Jm]Pm|m\mvZ&Zb~5iKqJ]qe)7tlO&w7FC•[mF WY WUH W\C:ru^-NLu9^᜞&_ec4QJ>*!/k0]ʺMldI> KǷ OYSpPZù U@(4glQV"Y943MwIq yP5@?(0iӻx=f8'(@hBrx4[%(1SV{P#tqj"Eo1!#2ʈ'y`uaTG٭J{6R%á;QaoyoߝwqѻXВhU?fR|Vtj$Z-ؙm)O0~;@iAC^v2?{H}S x*%PRQ GnQxU W3wK>B,k|u;k"˗ff'Nr=׶.:s<"e~Dw9b5xziW%{͵7M(h!`:/S{욹 #JDR{(5my&7syqlf@:]Ǵ?YL[A`R^N1?VM65H|} 2#P 3UGzzvRVbԢ'g5/t`)2\Zmt*⹃VQ:^ IB{ն~kqI525=7>\\]Ѭ6 qYk=2=P%?#bTJҞ7#1QW%LSҟg'.)I(`Ғb~%ss&kj.T7Qt}(lJJocڣ\%VrjG2脷JPx\J1~a 6qh2?Mcv+ ~V~Q Ք[wC3dwس,>GH5CQXX^NI A%OϯرuArC}Ic"V#_`%~7Ī.];c'v|Tk*G\X֌؝ q͛˫ ɭ[9Q ‹vXTǒkkchy+TwL_c|@v;aN>0R؇!${udx뼴|L' M hY}Oe50"op)%p 8^m}.4ٓvngR a +g,of ?0Gf-!I%W b}\~?QH#i^|\,OUb=/-Q_N+߄V۷o6ilo]2[հI5_z %l aނ& b{C[HAFr-_,X8Ws5OKf8;}MR,#ה9UdlkgE{9F$_:AurlL2ShLp(( .I~3S /rdJ ׍sGֻ,h*ʬn S|p nOWItԸgY[+XW5#e8jz.M:KÍlԫkBRoJE/Y&]L^I}b܀D|J˟C58x#'c 7KPEsDɤ[#G=69c>lΥ,i1:G@R/_(t.K )"NesA5v'qmnRT"ΦNR"! (sN].k$8wQ)Y'="lBe4\J}B VbAZ ,BSg~lG3TjmOz Ln?ˮ<[?X`I_3YA }[Q=I\(=9W Z~"5'BH8xkg}tVM+h>څ4ޚf'I,#|Ta֨"Ҟz N2ʔ5 y+Ir#Y~Zp "+ !}L==<(@Dqz_CX 9ayk1WDr(X]鑬l2d=*9Q $坚DP= *5H,%NUfcJ 1eP zũMH)+Mh,qj{R3z{%^Ǚe'>&>\T |ľ&e,hXDvk_27Vl CeS'68ǷI|0 r;[U&.,GDw a[:koʛ[{T163ڕ:#ozMnki3]g˻8"i8 =W_ Ervm &?##& {P\Zur,'S 514oY|:JSW/5^kP%$9H HZ fƌ K8kӜ2(ܘ{Mu!ZMݓIg~Re xbxZB~X jܰL/ӓJv:R%bo.4'HC5p[qM+c  0?&0fQvT|г"Ϩpe\n#=عݡpjIDRt?J4Sd5/LѨsja^tuSuAVv)[?9Kkw$t b0Rb4\5gSqTp ¤I$0!Ae9]fr(Jʒ'kLE<`\,M t2a@{'mbT!/US@b?/aг8š1HGG%$SvGټt]%&VN\EժNy˓}cw!XZ͙gjlc^{{sfilCӻ.U%-)8MQp,\]3yL^5WU3yL^5WU3yL^5WU3yL^5YzV3yy3EjqFTsn_nm5:XF:sX"T2;Hkw%n<{[nq%S}_+IR}kUiϘj =tO]mvwH0a\l:-+; "h uPVidTi-arݿq>D.4NM RR߫hu5d2YL2).7GATsOwy)դ5ifMYff :Aڙ^|CߟntP˨owFۙl^<7GuwT<tj_7}6ݢԝaS3j֚V6sOߦcT=ڟAs+&-<|K\ELSI{kPvAAW0n7ͷ>n$ %BLr3Nk6_-O,?2Ͱ2ۂ5R?,;IO  5_̉>ʎ9]f׮ٵkv]f׮ٵkv]f׮ٵkv]f׮ٵkv]f׮ٵkv]f׮ٵkv]f׮ٵkv]f׮ٵkv]f׮ٵkv]f׮ٵkv]f׮ٵ]ٵuC5lKW*r:ɖ \s~U`G$e5pjw:іªm}ೳHM~K;4P4Nw-]Vkc?X? J2i@wS [*hH X>m0hz^jbkg{ў0:Z_]" [nMhV(EN( ;:n5m(w`֭ZRPɸTP2D yU+j;vvV=dpv'7x+o2ã8ypE+ fӬqsɭHkt{iBls22J?ݜ?JX@5YEof:  jNT#|HJ!B)J',r/r-:r7e6.Q^|vKnPDWMFj{no^r鳩&5A7,]Tq0C"c'\ڜ(mF3 ЂjT+Ц_7 0Y186nJ->Iw[K mrV}ُNuOc//+0 MtQ'S}ۄ(P jcsvoQjMC~.+`B"I+ |BQgBѨ:jw?oXµmjնҥ5۔#QA qFꧫˇA|(=<%뭒%nе<50)Q+ikyq4 {D{Iˤa~ #atN2KW<]a7] k ,@7ʻ06춶zlV4SjfE(SPC\+(ĥa $ \_!#@R |͗TA%Ԩ_{ xh!r~/هmPR㨺#Z4*\֋0+pP| AU:&J+ѩM9G٬~1/n }3>8<߄_4 D7QXQP+=8@0Ww~꡽ 2UVjS GJ&pO8׳3 J|no(]e8)B*Ť}//":\N{0 L& L\]aF|Q@M!x\>#(`OEfqs-*;bQCC?Mѡi٦qXa֘T+fVsrIo\TGtWBJ6YQHdA 0}o KpsvQT xGIQfigr 9Dj JR$|O f4jr,=v>:3DYRwvuu.C nZ#% Jl\,eTWSP0C iIB q!V@>uOWKqj6%DS+ .@-\$d0FʸDZe.svD۾tb9gi ܑ?, ֏a{E?(4h7:TROA#GnPU3.C 1M3xn7cK9YhQ}ŸwelxP7tl<M79j $ MSAn xnGX(]Gᘞ2 j*MV{cp a S\FZ('+'Kq)K7hxzJd 5>| O:p24TsUvw&>i[ ~J*&kUh>4@H#j~/k0L]HSDDFa67nıfcEc\FG"B:(NYwUD] (ƿޅ̬L[.L/>- ǙȻkt{$o͊ 0Y ID*bK7Lh[ݢ@Ѩ`~ܣq[+q._;sg`D Lhe^,9'uh3a0MdBn)KJHTV%!)MV.~nU]ѨL(Ut;@u&4]"HJI3l]gBܼnpuq-`ec^+>*P׫/m3u\*{A^#*m=_>2C 54LieσI;P'Bl&S WeY짧]+=FU|nH >8#6Jv̩1q*6D2ԚFWɫnE5DjiJ:Ӳ|'>>)kkңN&C_WqœhVOe)C)_7I`S عoAs.KC癨GSZd~i՞zucؖ`S&Z ya]9dSV;-,(mxF)|3WΊ["X*aBdI0ӳxL) d}xp bZD zz.SƯ~DG5zu"૕sEѭOqm.{NH{#fР~޾>}[}ҽüD؇R':WM.^ JRb$vKO Mf̔=NXƩ(z4^e\Ce!s5gVJ]MOaգV}q~uyc`$E6Q~Led^Be#>^_mS>Vٟ@iR [IjeQיe?ycR|\ܜZ>r._NȤTVaHtař`Pt}6{ d)Wz\u=DC ot*c>oh(uiCVP#a^*qyj}+ʺ hu;*W9U2+LgUV?q"sjFҳQYCwtgxE3:T?4"@}WPi0 OD(H`Fw\c|VhZ5zDROygQZa`cꄗȩd|)Ni2"[a)~vYn'|(槫:䫗br%}lk32' LK^4 珔$88+hU6>W}SWۨѹHikM~71҄gwҠ*(V\sM?1VZLEҎWeWL7`YE>=YI0/AO&Y2ْ"_)#ԅp |fx$J.Mmx>]Jrh+G<X]([vR4Оd f">L4\lCzQgn]_5uM|]_5uM|]_5uM|]_5uM|]_5uM|]_5uM|]_5uM|]_5uM|]_5uM|]_5uM|]_5uM|]_5uM|]_5uM|]_5uM|]_5uM|]OSvJY;w{XiJKI ܻ\!*uz&@~adܛ&ݧ4VG&BS]M&pMv57 NWT}C-[ӠCA 62mg&pYkjw~&+?-u0^a`bMbM-Ě,ĚoāXa8Q{%Z1y0O\M\.Mqz懊Ӄwt W#^bU2iZH[ ؇>ThEBf=+ݼjW0ŧt4DTL ;/<xd&<,)j 8YԓlH a*5dH=4y4jZ#":KJRMf+hH}iߚfZ +:X:ܨ-tu⃍ dhf*rOr"A^/7' QY?F{SqhZvLSϹhNr\IcTO{?it:4ſoS{'_բS- $5y*mvp[fvZꪯ/~v^ :7٬M kQyh2_]~ftT :/36ƉTHwI0o*I)5'վֆ޿h[듓Nu=zxk ev\#"wեN٣oo+F+ëmm;aW_f:ũ6ݺFllUjvMk,%ZlÔ5n+ۢR],ckxwVfyY$2X%W C[ +^VNgV 6b[ZjUꖺm mr[{n2ENkccqsWm7 i (EhA]@v2ip\gwJ™J?IbŃxix%zL<*4+t[%o: (m؊_n2&R)ѧ#