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:----VBK65dkFtD6MuqrE3LXKBtSMWIgpwCi+h0odeJCkczkEuHfGuzfc1slRIBM3Rwr/+snarGcdByCj/j7PTFXI7uDPS+SEU4X90qVVZ3HQzqMYMqcv8TlrCgwhwK1ZF0itDcUHpCpGqOREYKEMuDS+uzJ4UegGnEfqw91jF52c5Fi1ZE5ezxwV8xwj7PUqwPLndNI0eHCQZ5hcPKs9aCZLJ8L2aAEt61VXkZJ7VcDEuGDfgToI456YhjrTDeuR9Bu4eUezAONSPj4lp2OwnxjT6eIdv/HggHEIMOnL1aVO+PwwxL+ZDirrd3RQazfYwjK2OQ8gd0SjRQp9nJNU3SS4wsLnr66APmQiFvvk5gmA63NCo6ns8HR2bu+W9zGnxInBxQCU8/s5WRPW3aNYGA/0imH65RjnsAWgoBqtYwc0Ds4nHcR1VJK7y5gWerrvHLyS55XV87vLKdrsO/KxicgrwkCDkXifCmnc4O+z7ycbdmzpT6oDgaKK5tkJA/E9knwa6lFApxPkBVbkwIVgyUXAAdrHwMPn4aqg2dK+d5/1zFcUIthUmIsRBBv1xvqxMZcC0jza96nSnys6nFEXp3nAWH07KDw/R2cF/pCntw/Dj+M3jpkipI8KYpDaeaj2L0Pm+sFTveS98aaTuNJs8ZVJ3fFo5rtc6kauXsZNJK4/Lv8=----ATTACHMENT:----ODUwNjgxNzU4NTI2NjY2MyAxNTE0NTMyNDY2MDQ0Njc5IDQ1NjAxOTQzMTcyNDI1Njg=