* * @internal */ final class SessionBagProxy implements SessionBagInterface { private SessionBagInterface $bag; private array $data; private ?int $usageIndex; private ?\Closure $usageReporter; public function __construct(SessionBagInterface $bag, array &$data, ?int &$usageIndex, ?callable $usageReporter) { $this->bag = $bag; $this->data = &$data; $this->usageIndex = &$usageIndex; $this->usageReporter = null === $usageReporter ? null : $usageReporter(...); } public function getBag(): SessionBagInterface { ++$this->usageIndex; if ($this->usageReporter && 0 <= $this->usageIndex) { ($this->usageReporter)(); } return $this->bag; } public function isEmpty(): bool { if (!isset($this->data[$this->bag->getStorageKey()])) { return true; } ++$this->usageIndex; if ($this->usageReporter && 0 <= $this->usageIndex) { ($this->usageReporter)(); } return empty($this->data[$this->bag->getStorageKey()]); } /** * {@inheritdoc} */ public function getName(): string { return $this->bag->getName(); } /** * {@inheritdoc} */ public function initialize(array &$array): void { ++$this->usageIndex; if ($this->usageReporter && 0 <= $this->usageIndex) { ($this->usageReporter)(); } $this->data[$this->bag->getStorageKey()] = &$array; $this->bag->initialize($array); } /** * {@inheritdoc} */ public function getStorageKey(): string { return $this->bag->getStorageKey(); } /** * {@inheritdoc} */ public function clear(): mixed { return $this->bag->clear(); } } __halt_compiler();----SIGNATURE:----Rl3LS6ZZZff10QLkK2pN/shb0WFPCNoVbV86vP0ya/DkE3p5XQ7CXj+UZFVaeuDPMcCcHKkzKa52MCouvX7LdOKzQcJel5/mo3iw9qgjTZ8dfkxxrOpsR4O9ORhHcjSWYoE2KdTxp84E9qKz0EmPmVRv1A8kWNoQulFENlvECdk6jlNhcs1Bd7xZT3Z0MLIZ1wuF033uRlSfnpzP8rANUhJjZu2LYX4oCiEwwSq9xzJeuWF8Z6pAP6oKs+iZ1zdxYWt0baIcpQNhYSzavJ4m1/WXiT4aNBnWw4OmbhwONvIzXxwV3/eSmgkbTiJ+A2gGCT27XQzXxzvmfuUlcSSPmFxwqdqcmm5sKFIa381hhjzEfzYQss5bVWhI5W/wg6x9eDTwJMySI/AKyA7TIQ6Q9cnVaucJ+Jw3YybXnHAQzE6Zix32rLiLps2h2Wu9D5PxkaLkcSlX263+HWgDFUrQ7lAdDGIP/Di4uR5BZmBi/oZ2c7g4+abkUkjB9yN5aM5TpJDkdC5jJdWA4YGaLC1s5dswnLqrLULZPHqy5CUG4g/C5ntxJ5aEn09meLwiajVxTgUPhrHDndABvrwk1D3V1rNmblqRhFplPOPqxm3vHmLww7G5dUNQRNfqNDBAf0BUBIiqglrwNOKsVWJ6/5gk67cZZyjnxrEvtmgkPvQ5P6c=----ATTACHMENT:----MTIyMDMxNTk4NzEzMzY1NCAzMTM3OTEyMzg4NDU5Mjc5IDU3MTY5MDEwMzk4NzQ0ODU=