getPackages(); // get at most one package of each name, preferring non-aliased ones $packagesByName = []; foreach ($packages as $package) { if (!isset($packagesByName[$package->getName()]) || $packagesByName[$package->getName()] instanceof AliasPackage) { $packagesByName[$package->getName()] = $package; } } $canonicalPackages = []; // unfold aliased packages foreach ($packagesByName as $package) { while ($package instanceof AliasPackage) { $package = $package->getAliasOf(); } $canonicalPackages[] = $package; } return $canonicalPackages; } } __halt_compiler();----SIGNATURE:----hModkKkERWXGeny8am9D8biRQ0TtMYSXxo98qyGBI4NdISNBSnp66qvsJdHTiXyf3T/AHmXuqa2CS7Az1mYQd12RtXRjqUDJslzjQDjy+yxawF7z1yGTji2+d9wvtrnUmOJJj6TMpUmw5mA7AubVOW714Et7MXRagpBy/Uio9MCkA9cYy0eBVqpJFU6vKm3WqkF8rskezq9dP677UobREfdpLZ4k5J19oUZCrej/RkmPMtqGw/QQo12ZCdFq5zopuUjywYxN2XFLzTSMAeU2Fonud49rTsdz2HANYuKebdSQ7mZ7NziwsuRljC703CJM2H8Mn0x8vxJd4dsAUzqgxtGCzU/1cxbTcJqGpDVH4b3Htf/I6+boCECJPfJ2vMZccKqwhfXqGAhs9Rc8RD0HsuVQCyUn+pbnfQKxqVEivR0yt2yZRw0k8w9GM7i457JqtD6pc9pg5NWN4ztzt/gnLRCWtsBo/Iyah6ZoVYMswOiWrVbdjimEqUICON6fOihn2rf0qFtQF+ZHNoThwRYDbOZhdSqM/4V2O0FA3KjtsuakqsEUkMY3/KyahNPxDorwuJrBtRs1nfb+itOXBEFmnwOOonuNiJKRdbSAV07KYRtzw5WzQgfE30I1/4uTp8CYBLMydZRVdtnAUE6hUkIXu0Im3MjML1WHA4AAQlTYjy4=----ATTACHMENT:----ODIxMTY1MzUxNDY1ODAzMiA2NzM5MTIyOTU2MDE4NzM1IDEzNzkzMDk3NTQ2MzE3MDA=