$settings __construct($this->session->getSessionDirectoryPath())]]> Logger::$default getMessage wakeup API API API API API API API API API API API API API API API API API API API logger $eventHandler loop loop getMessage isInited setEventHandler APIStart self::call($a) self::call($b) self::call($callable) self::call($promise) self::call($promise) self::timeout($promise, $timeout) $callable instanceof Generator $callable ]]> $v instanceof Generator ? self::consumeGenerator($v) : $v]]> all any first some wait \is_callable($callable) $id broadcasts[$id]]]> broadcasts[$id]]]> broadcasts[$id]?->cancel()]]> broadcasts[$id]?->getProgress()]]> filter->whitelist) && !\in_array($peer, $this->filter->whitelist, true)]]> getStream()]]> $API $ctx $datacenter $logger $shared refreshNext refreshNext $uri $auth_key $data $data $fileName $fileName $fp $new_session $options $options $session $settings $settings $settings $settings $tdesktop_base_path $tdesktop_key $tdesktop_user_base_path pyrogram tdesktop tdesktop_decrypt tdesktop_fopen tdesktop_fopen_encrypted tdesktop_md5 tdesktop_read_bytearray telethon zerobias $part_one_md5 $part_one_md5 $dc $main_dc_id notFalse $socket instanceof Connection \is_int($id) $default[2] $default[2] $dohWrapper $socket instanceof DataCenterConnection settings->getTransport()]]> \is_int($key) $API $connectionsPromise $ctx $datacenter bind hasTempAuthKey() && $authorized_socket->hasPermAuthKey() && $authorized_socket->isAuthorized() && $this->API->authorized === \danog\MadelineProto\API::LOGGED_IN]]> permAuthKey =& $this->API->datacenter->getDataCenterConnection($dc)->permAuthKey]]> $value getCache ]]> $config $config withDatabase(null)]]> getIdleTimeout()]]> getMaxConnections()]]> query("SHOW VARIABLES LIKE 'max_connections'")->fetchRow()['Value']]]> $config $config withDatabase(null)]]> getIdleTimeout()]]> getMaxConnections()]]> $previous $settings $settings $settings $instance $v $value $value $v]]> \json_decode($value, true, 256, JSON_THROW_ON_ERROR)]]> $dbSettings $dbSettings $dbSettings $dbSettings $dbSettings $dbSettings $dbSettings $dbSettings $deserializer $deserializer $deserializer $deserializer $deserializer $deserializer $deserializer $deserializer $serializer $serializer $serializer $serializer $serializer $serializer $serializer $serializer $table $table $table $table $table $table $table $table static $old setSettings new static() MemoryArray MemoryArray $array $flags $settings dbSettings]]> $stmt $pdo $pdo $value $v $v $v $v $v $v $v $value \igbinary_unserialize(\hex2bin($v))]]> \unserialize(\hex2bin($v))]]> \json_decode(\hex2bin($value), true, 256, JSON_THROW_ON_ERROR)]]> dbSettings]]> $v $v $v $v $v $value $v]]> \json_decode($value, true, 256, JSON_THROW_ON_ERROR)]]> dbSettings]]> $db db->get($key)]]> $value $stmt $db $db $db $db $db $db fetchRow()['count']]]> $builtUri $uri $orig[1][0] === BufferedRawStream::class $class getReportPeers())]]> getReportPeers())]]> wrapper->getAPI()]]> getParameters()[0]->getType()]]> self::$pluginCache \array_values require $file new $class replyCache]]> replyCache]]> $replyCache $adminIds $peerResolved $peersResolved $peerResolved $matches $matches $peerResolved botApiFileId]]> botApiFileUniqueId]]> $thumbs $videoThumbs AbstractAudio AbstractAudio AbstractSticker AbstractSticker AbstractVideo AbstractVideo AnimatedSticker AnimatedSticker Audio Audio CustomEmoji CustomEmoji Document Document DocumentPhoto DocumentPhoto Gif Gif MaskSticker MaskSticker Photo Photo RoundVideo RoundVideo StaticSticker StaticSticker Sticker Sticker Video Video VideoSticker VideoSticker Voice Voice entities]]> entities]]> getClient()->wrapMessage($this->getClient()->extractMessage($result))]]> Message getClient()->wrapMessage($this->getClient()->extractMessage($result))]]> $html $htmlTelegram Message wrapMedia($rawMessage['media'], $this->protected) : null]]> ChannelMessage ChannelMessage ChannelMessage GroupMessage GroupMessage GroupMessage PrivateMessage PrivateMessage PrivateMessage DialogCreated DialogMemberLeft DialogMembersJoined DialogMessagePinned DialogPhotoChanged DialogTitleChanged Message getIdInternal($rawCallback['peer'])]]> $code $errfile $errline $errno $errstr $file $line $message __invoke self::$map self::$map ??= new WeakMap \danog\MadelineProto\AsyncTools::after($a, $b) \danog\MadelineProto\AsyncTools::all($promises) \danog\MadelineProto\AsyncTools::any($promises) \danog\MadelineProto\AsyncTools::call($promise) \danog\MadelineProto\AsyncTools::first($promises) \danog\MadelineProto\AsyncTools::some($promises) \danog\MadelineProto\AsyncTools::timeout($promise, $timeout) \danog\MadelineProto\AsyncTools::timeoutWithDefault($promise, $timeout, $default) \danog\MadelineProto\AsyncTools::wait($promise) loop loop wrapper->getAPI()->getEventHandler($class)]]> T|EventHandlerProxy|__PHP_Incomplete_Class|null $data MTProtoToTd MTProtoToTdcli all any completeCall completePhoneLogin confirmCall downloadToCallable downloadToDir downloadToStream end first loop phoneLogin requestCall requestSecretChat some start tdToTdcli upload uploadEncrypted uploadFromCallable uploadFromStream uploadFromTgfile uploadFromUrl wait account ??= new \danog\MadelineProto\Namespace\AbstractAPI('account')]]> auth ??= new \danog\MadelineProto\Namespace\AbstractAPI('auth')]]> bots ??= new \danog\MadelineProto\Namespace\AbstractAPI('bots')]]> channels ??= new \danog\MadelineProto\Namespace\AbstractAPI('channels')]]> chatlists ??= new \danog\MadelineProto\Namespace\AbstractAPI('chatlists')]]> contacts ??= new \danog\MadelineProto\Namespace\AbstractAPI('contacts')]]> folders ??= new \danog\MadelineProto\Namespace\AbstractAPI('folders')]]> help ??= new \danog\MadelineProto\Namespace\AbstractAPI('help')]]> langpack ??= new \danog\MadelineProto\Namespace\AbstractAPI('langpack')]]> messages ??= new \danog\MadelineProto\Namespace\AbstractAPI('messages')]]> payments ??= new \danog\MadelineProto\Namespace\AbstractAPI('payments')]]> phone ??= new \danog\MadelineProto\Namespace\AbstractAPI('phone')]]> photos ??= new \danog\MadelineProto\Namespace\AbstractAPI('photos')]]> stats ??= new \danog\MadelineProto\Namespace\AbstractAPI('stats')]]> stickers ??= new \danog\MadelineProto\Namespace\AbstractAPI('stickers')]]> stories ??= new \danog\MadelineProto\Namespace\AbstractAPI('stories')]]> updates ??= new \danog\MadelineProto\Namespace\AbstractAPI('updates')]]> upload ??= new \danog\MadelineProto\Namespace\AbstractAPI('upload')]]> users ??= new \danog\MadelineProto\Namespace\AbstractAPI('users')]]> $callback setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper $class downloadToCallable downloadToDir downloadToFile loop methodCallAsyncRead uploadFromCallable uploadFromTgfile uploadFromUrl getException()]]> logger $logger $server $previous type($this->message, $this->code, $previous)]]> code]]> exception ? $this->exception->getException() : null]]> ?Throwable $address (int) $port $arguments $arguments $arguments include $autoloadPath $callback $server $settings $payload === self::SHUTDOWN $payload === self::SHUTDOWN unwrap ServerCallback ServerCallback $args $this->__call($id, $args)]]> $data copy unwrap $data Wrapper Wrapper new $class($this, $ids) callbackIds[] = &$callback]]> callbackIds[] = &$callback]]> IteratorAggregate getEventHandler()::class]]> $optional $optional $optional $optional $optional $optional $optional $optional getResource()]]> mode === self::FILE_LOGGER ? $this->optional : Magic::$script_cwd.DIRECTORY_SEPARATOR.'MadelineProto.log']]> optional]]> optional]]> stdout->getResource()]]> $optional optional, [$param, $level])]]> $colors $stdout colors]]> colors]]> colors]]> colors]]> colors]]> colors]]> colors]]> colors]]> getMsgId()]]> API->settings]]> getRpc CheckLoop CheckLoop CheckLoop CheckLoop CheckLoop API]]> CleanupLoop CleanupLoop CleanupLoop CleanupLoop CleanupLoop connection->msgIdHandler?->cleanup()]]> connection->msgIdHandler]]> HttpWaitLoop getSettings PingLoop PingLoop PingLoop PingLoop shared]]> bufferRead($payload_length)]]> bufferRead(4)]]> bufferRead(4)]]> bufferRead(8)]]> $message_data $message_data $message_key getReadBuffer ReadLoop getSerializedBody()]]> getSerializedBody()]]> connection->call_queue]]> connection->call_queue]]> getWriteBuffer getWriteBuffer WriteLoop shared->isHttp() && empty($this->connection->pendingOutgoing)]]> $callable()]]> $msg $messages $update feed feedSingle $state $updater FeedLoop SecretFeedLoop checkSeq feed API->feeders[$channelId]]]> date pts pts pts pts pts qts qts qts update update update update update update update API->authorization['user']]]> API->authorization['user']['bot']]]> $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $feeder UpdateLoop API->feeders[$channelId]?->resume()]]> datacenter)]]> TL)]]> settings)]]> settings)]]> dcList, $this->settings->getConnection())]]> $callbacks $callbacks getInputConstructor(...), ), \array_fill_keys( [ 'User', 'Chat', 'Peer', 'InputDialogPeer', 'InputNotifyPeer', ], $this->getInfo(...), ), \array_fill_keys( [ 'InputMedia', 'InputDocument', 'InputPhoto', ], $this->getFileInfo(...), ), [ 'InputFileLocation' => $this->getDownloadInfo(...), 'InputPeer' => $this->getInputPeer(...), 'InputCheckPasswordSRP' => function (string $password): array { return (new PasswordCalculator($this->methodCallAsyncRead('account.getPassword', [])))->getCheckPassword($password); }, ], )]]> array serializeSession authorization['user']['bot']]]> channels_state->get()]]> channels_state->get()]]> channels_state->get()]]> channels_state->get()]]> $path getSelf()['bot']]]> getSelf()['premium']]]> authorization['hint']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']['bot']]]> authorization['user']['bot']]]> authorization['user']['bot']]]> authorization['user']['id']]]> logger start start $channelParticipants $chats $full_chats $logger $minDatabase $session $snitch $usernames $wrapper MTProto sanitizeReportPeers($userOrId)]]> chats]]> chats]]> minDatabase?->sync()]]> wrapper) && $this->isInited()]]> authorized === API::LOGGED_IN && \is_int($dc_id)]]> datacenter]]> \is_int($dc_id) datacenter)]]> minDatabase]]> settings->getAppInfo()->getLangCode()]]]> getBody state |= self::STATE_ACKED]]> state |= self::STATE_REPLIED]]> state |= self::STATE_SENT]]> authKey]]> authKey]]> authorized {$key} =& $bound->{$key}]]> ack_queue]]> new_outgoing]]> expires $f->await()]]> methodCallAsyncRead resume resume getMaxId $e]]> $response \time() + $seconds $msgId $msgId getMsgId()]]> getMsgId()]]> getMsgId()]]> resume API->authorized_dc == $this->datacenter && $this->API->authorized === \danog\MadelineProto\API::LOGGED_IN]]> $contentRelated $contentRelated generateInSeqNo generateOutSeqNo $msgIdHandler methodCallAsyncRead methodCallAsyncWrite syncLoading getSelf()['id']]]> getSelf()['id']]]> $media extractBotAPIFile($this->MTProtoToBotAPI($media))['file_id']]]> static function (int $part_num) use ($size, $file_id, $part_total_num, $part_size, $callable, $ige) { $data $media downloadToCallable downloadToDir genAllFile uploadFromCallable uploadFromTgfile uploadFromUrl read[$offset]]]> write[$offset]]]> write[$offset]]]> $messageMedia $old_dc decrypt getReference getReference getReference getReference getReference getReference getReference $res $res $res $res $res $res $res $res $res $res $res $res $res Message static function (int $offset, int $size) use ($stream) { static function (int $offset, int $size) use ($stream, $seekable, $lock) { static function (string $payload, int $offset) use ($stream, $seekable, $lock) { downloadToStream upload uploadEncrypted uploadFromStream $file $file $body $size read seek seek populateFrom $id $peers $peers $peers $peers db]]> $db API->chats]]> db]]> powMod getInfo($peer, \danog\MadelineProto\API::INFO_TYPE_CONSTRUCTOR)['forum']]]> $channel $channel $channel $channel $channel $filter $filter $filter $filter $filter $folder_id $gres $limit $limit $limit $offset $offset $offset $q $q $q $q $q $res $res $total_count $total_count fetchParticipants fetchParticipantsCache fwdPeerIsset getInputConstructor getInputPeer getParticipantsHash recurseAlphabetSearchParticipants \danog\MadelineProto\API::PEER_TYPE_* $promises getIdInternal($full)]]> getIdInternal($full)]]> getIdInternal($id)]]> getIdInternal($id)]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> full_chats]]> full_chats]]> API->authorization['user']]]> API->authorization['user']]]> API->authorization['user']['id']]]> API->authorization['user']['id']]]> $db $extra_ranges $range_orig $seek_end wrapMedia([ '_' => 'messageMediaPhoto', 'photo' => $message['action']['photo'] ])]]> nextSent]]> getUpdatesState loadUpdateState authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> msg_ids]]> addPendingWakeups waitForInternalStart $first Tools::wait($callable()) completeLogin createApp getApp hasApp loop settings]]> $value settings]]> methodCallAsyncRead $wrapper $file $message $level $message $previous $caller $code $message $caller $method $e $fp $n $chat completeSecretChat requestSecretChat $chat_id $chat_id $encrypted_data $encrypted_data $message_key $message_key $old $old $chat $chat $chat_id $chat_id $seqno $seqno checkSecretInSeqNo checkSecretOutSeqNo generateSecretInSeqNo generateSecretOutSeqNo [$unserialized, $unlock] $ipcSocket $ipcSocket $unserialized unserialize($this->ipcStatePath)]]> ?IpcState read(null, 1)]]> read(null, 1)]]> $php[0] $php[1] $php[0] $php[1] lightState ??= $this->unserialize($this->lightStatePath)]]> extra]]> $stream $l $append $append_after $memory_stream $stream $append $append_after $decrypt $encrypt $extra $read_buffer $stream $write_buffer $append $append_after read write $hash_name $read_buffer $read_check_after $read_check_pos $read_hash $rev $stream $write_buffer $write_check_after $write_check_pos $write_hash getStream($header)]]> close $append $append_after $obj $socketContext $uri $extra StreamInterface $stream $l $in_seq_no $out_seq_no $stream $l $stream $stream $uri $code $ctx $header $code $current_header[1] $description getStream($header)]]> $stream $l $stream $l $extra $stream ]]> $offset $offset $offset $offset $offset $offset $size currentDuration += $frameDuration]]> currentDuration += $totalDuration]]> $emitter $packFormat $stream $streamCount getReadBuffer($l)]]> $offset $offset $offset $offset $stream $extra $read $code $current_header[1] $description $l getStream()]]> $stream $extra bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(16)]]> bufferRead(2)]]> bufferRead(4)]]> $length $ip getStream(\chr(5).\chr(\strlen($methods)).$methods)]]> setupTls getStream write write $connector $stream $data $markup parseReplyMarkup }>]]> $arguments[$key] $photo $photoSize $thumbnail $file $message $posClose === false $posClose === false MTProtoToTd MTProtoToTdcli tdToTdcli authorization['user']]]> authorization['user']['id']]]> $file $message \is_resource($stream) \is_resource($stream) API->getInfo($arguments[$current_argument['name']]))['InputEncryptedChat']]]> $result >]]> $arg $v $v deserialize serializeMethod serializeObject serializeParams API->logger]]> botAPIToMTProto logger $elem[1] $elem[1] $elem[1] $elem[1] $afterConstructorDeserialization $afterMethodResponseDeserialization $beforeConstructorDeserialization $beforeConstructorSerialization $beforeMethodResponseDeserialization $constructors $methods $tdDescriptions $typeMismatch (string) $object (string) $object (string) $object findByPredicate findByType deserialize serializeMethod serializeObject findById findByMethod click authorization['user']]]> authorization['user']['id']]]> $c->name !== null]]> $val $this->{$var}]]> end getVar $value $value $this->{$var}, $obj, $obj::class, )->__invoke()]]> {$var} =& $val; }, $obj, $obj::class, )->__invoke()]]> __invoke __invoke {$var} =& $val]]> $stream $TLID_DECRYPTED_AUDIO_BLOCK $TLID_REFLECTOR_PEER_INFO $TLID_REFLECTOR_SELF_INFO $TLID_SIMPLE_AUDIO_BLOCK $callID $configuration $creatorID $holdFiles $inputFiles $internalStorage $isPlaying $otherID $outputFile $protocol $received_timestamp_map $remote_ack_timestamp_map $session_in_seq_no $session_out_seq_no $signal $storage $visualization $voip_state openFile $authKey $ack_mask $last_ack_id $packet_seq_no $s1 $s2 received_packet seqgt $controller $id completeCall confirmCall requestCall read read $args $datacenter $object $stream pack_string recv_message send_message unpack_string $ack_mask $in_seq_no $out_seq_no ]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']['bot']]]> authorization['user']['bot']]]> authorization['user']['bot']]]> authorization['user']['bot']]]> $dialogs chats]]> chats]]> event_handler_instance === null || $this->event_handler_instance instanceof __PHP_Incomplete_Class]]> event_handler_instance instanceof __PHP_Incomplete_Class]]> PluginEventHandler|EventHandlerProxy|null pluginInstances[$class]]]> pluginInstances[$class]]]> pluginInstances[$class]]]> pluginInstances[$class]]]> pluginInstances[$class]]]> new $class_name array completePhoneLogin phoneLogin authorization['phone_code']]]> authorization['phone_code_hash']]]> authorization['phone_code_hash']]]> authorization['phone_number']]]> authorization['phone_number']]]> \is_array($auth_key) loop getAuthorization() === \danog\MadelineProto\API::LOGGED_IN]]> start $title $result $result function ($_) use ($callback) { $callback() $callback()