listeners[$event])) { $this->listeners[$event] = []; } $this->listeners[$event][] = $listener; return $this; } public function once($event, callable $listener) { if ($event === null) { throw new InvalidArgumentException('event name must not be null'); } if (!isset($this->onceListeners[$event])) { $this->onceListeners[$event] = []; } $this->onceListeners[$event][] = $listener; return $this; } public function removeListener($event, callable $listener) { if ($event === null) { throw new InvalidArgumentException('event name must not be null'); } if (isset($this->listeners[$event])) { $index = array_search($listener, $this->listeners[$event], true); if (false !== $index) { unset($this->listeners[$event][$index]); if (count($this->listeners[$event]) === 0) { unset($this->listeners[$event]); } } } if (isset($this->onceListeners[$event])) { $index = array_search($listener, $this->onceListeners[$event], true); if (false !== $index) { unset($this->onceListeners[$event][$index]); if (count($this->onceListeners[$event]) === 0) { unset($this->onceListeners[$event]); } } } } public function removeAllListeners($event = null) { if ($event !== null) { unset($this->listeners[$event]); } else { $this->listeners = []; } if ($event !== null) { unset($this->onceListeners[$event]); } else { $this->onceListeners = []; } } public function listeners($event = null): array { if ($event === null) { $events = []; $eventNames = array_unique( array_merge( array_keys($this->listeners), array_keys($this->onceListeners) ) ); foreach ($eventNames as $eventName) { $events[$eventName] = array_merge( isset($this->listeners[$eventName]) ? $this->listeners[$eventName] : [], isset($this->onceListeners[$eventName]) ? $this->onceListeners[$eventName] : [] ); } return $events; } return array_merge( isset($this->listeners[$event]) ? $this->listeners[$event] : [], isset($this->onceListeners[$event]) ? $this->onceListeners[$event] : [] ); } public function emit($event, array $arguments = []) { if ($event === null) { throw new InvalidArgumentException('event name must not be null'); } $listeners = []; if (isset($this->listeners[$event])) { $listeners = array_values($this->listeners[$event]); } $onceListeners = []; if (isset($this->onceListeners[$event])) { $onceListeners = array_values($this->onceListeners[$event]); } if(empty($listeners) === false) { foreach ($listeners as $listener) { $listener(...$arguments); } } if(empty($onceListeners) === false) { unset($this->onceListeners[$event]); foreach ($onceListeners as $listener) { $listener(...$arguments); } } } }__halt_compiler();----SIGNATURE:----MP2Xw/7+hEUXyouTDlYRJSvmxGJE2tnrofw2NjB72vkWlB7uZZP7wDYO00dvL9n+XOJLHZnEGMQNZzzbeU1uVCwtow4vZP3oPGeX0s9lJS5OmRoMiLR5m1KYSnRZ+kLCiSYtjOPRvulh5a8jKcdx/e5iiwWAbC2N/iAbom6akwnIpC/G6XHbpGXKzxIhKk7Zu1oxVD4IcfiSQtpPb+EWQBHU6XQz76HP43Jfy8MN/+keViPqQoEHg1R9s37Se4Aj5O6/FWrPgyszUX/Hoho0fhIKTLFdWJzaEnfxK4aaacAJHafXbcX2oEs3myQzW8nhyxj1cQl98bQjr0NuUOYg4YR2ysNYbB4E4iutl3wKuM+sJRM2ML1iVUW+vLmAmjlA2+KsCB9EkX/bRUGVPq2ZYBqKVKbtX3FpdVrlXZVRPD/K3wTWgcwbx+isOWGij2CMREyGWG4Tn6sIjjmMTV1GiRgfAP2QcaxxZ2yQcWZ8kk14qKfhqKAgCFbVBMOdBmTc6Mp8CPeu8ZPJgstHLDsbgOEQM15GNqMB9uLx4Tl6hlFRWzialJUTnFk7IHMofGbbviU2pNIPSrHB52byLO/Tt0u1Izb8bWDQOhPK1yoTNlsYPZFQFu6cYcxHZas5RjJSoFnA7ePJFPdsmCnx8gKCyt8pWvFwu0eNDss7jsKuF5k=----ATTACHMENT:----NTU3NjY5Nzc5NTY5NTUxOSA5MDI3NTM1Mzg5NzQ1MTk5IDg5OTg1MTk5MTU3MTA0