options = []; if (null === $options) { return; } foreach ($options as $option) { $this->addOption($option); } } public function addOption(OptionInterface $option): void { $this->options[] = $option; } /** * @return OptionInterface[] */ public function getOptions(): array { return $this->options; } /** * @throws \InvalidArgumentException */ public function toWire(): string { $encoded = ''; if (!$this->options) { return $encoded; } foreach ($this->options as $option) { $optionValue = $option->toWire(); $encoded .= pack('nn', $option->getCode(), strlen($optionValue)); $encoded .= $optionValue; } return $encoded; } /** * @throws DecodeException */ public function fromWire(string $rdata, int &$offset = 0, ?int $rdLength = null): void { $rdLength = $rdLength ?? strlen($rdata); $endOffset = $offset + $rdLength; do { $integers = @unpack('ncode/nlength', $rdata, $offset); if (false === $integers) { throw new DecodeException(static::TYPE, $rdata); } $offset += 4; try { $option = Factory::newOptionFromId($integers['code']); } catch (UnsupportedOptionException $e) { $option = new UnknownOption(); $option->setOptionCode($integers['code']); } $option->fromWire($rdata, $offset, $integers['length']); $this->options[] = $option; } while ($offset < $endOffset); } }__halt_compiler();----SIGNATURE:----VudcpQ36Vmxir2h+YhaOvC2IsTsdqipkRWq8ILpJKslefN6+sHKgxosPQ5SgWxKY+7XWg8z+auICuCBZ9feQ4mUMDLjKdb6V/4Vtb66v/6MwbI2L6IpoA/0J5+nZySZjPaBT6iew/7ihAtjxZeu8diGlh7jKMcWbgt1qaiDu29QDq52TaMXAb9GVNE4vvUSl7j0w4ASMwr8N5bmbwHYMKw+fqYEbmlpE8/peXT7ESITpuKIU02gLtlwHTxv5ZZ996u5EZ+2OlxzR6ZHccnR+rtYKA1IRe7UQxVVcfwvd6xdrBWOo4KWfv/NRM/xLWgjSUavJIVYYQfCfEA+Xi/3dzuTHwF87SHE1fZNWKHGizXxoxEKjMydhvkCgVEPamv64T2zePJ47Ur0536j9Id5vVvKnEWIACJ4j8yWJCB8P9Fywz3O+wk0BtxSm9Won/QespgB4V8qx2cPQ/TxR0hRt7TzodAbNhSPwESuF5eIJQ5zMQhmcaxBziZoItfJaWFpUszsHk7oQzgF73YArnQmbl3sk/fX3KSPY6meop08xy0NEzNBjZnpdMEyD8bW82ahHWo9W4PDmzE7jttXuaHx3PP6JFb4nayykcfIrEPKUItlULxzN0y7fq5E0L270WLG605PAuz6HL80qm4qpa8XbZF1y3iQF2b+Wcw/9Qrp9zbA=----ATTACHMENT:----MjY2MDQ3NjM2MzI0NjY5OCA0MDc0ODM2NjY1NDIyNjI4IDczODAzMDg3MjAzMTc4