summaryrefslogtreecommitdiff
path: root/libs/tgl/src
diff options
context:
space:
mode:
Diffstat (limited to 'libs/tgl/src')
-rw-r--r--libs/tgl/src/auto-static-fetch-ds.c0
-rw-r--r--libs/tgl/src/auto-static-free-ds.c0
-rw-r--r--libs/tgl/src/auto-static-skip.c0
-rw-r--r--libs/tgl/src/auto-static-store-ds.c0
-rw-r--r--libs/tgl/src/auto-static.c328
-rw-r--r--libs/tgl/src/auto/auto-fetch-ds.c1
-rw-r--r--libs/tgl/src/auto/auto-free-ds.c1
-rw-r--r--libs/tgl/src/auto/auto-skip.c1
-rw-r--r--libs/tgl/src/auto/auto-store-ds.c1
-rw-r--r--libs/tgl/src/auto/scheme.tl829
-rw-r--r--libs/tgl/src/auto/scheme.tlobin85572 -> 0 bytes
-rw-r--r--libs/tgl/src/auto/scheme2.tl540
-rw-r--r--libs/tgl/src/binlog.tl102
-rw-r--r--libs/tgl/src/encrypted_scheme.tl1
-rw-r--r--libs/tgl/src/encrypted_scheme16.tl22
-rw-r--r--libs/tgl/src/encrypted_scheme17.tl31
-rw-r--r--libs/tgl/src/encrypted_scheme18.tl38
-rw-r--r--libs/tgl/src/encrypted_scheme23.tl29
-rw-r--r--libs/tgl/src/errors11
-rw-r--r--libs/tgl/src/event-old.h48
-rw-r--r--libs/tgl/src/generate.c3219
-rw-r--r--libs/tgl/src/generate.h173
-rw-r--r--libs/tgl/src/mtproto.tl19
-rw-r--r--libs/tgl/src/scheme.tl1
-rw-r--r--libs/tgl/src/scheme12.tl505
-rw-r--r--libs/tgl/src/scheme15.tl522
-rw-r--r--libs/tgl/src/scheme16.tl504
-rw-r--r--libs/tgl/src/scheme17.tl528
-rw-r--r--libs/tgl/src/scheme18.tl535
-rw-r--r--libs/tgl/src/scheme19.tl596
-rw-r--r--libs/tgl/src/scheme22.tl596
-rw-r--r--libs/tgl/src/scheme25.tl622
-rw-r--r--libs/tgl/src/scheme28.tl641
-rw-r--r--libs/tgl/src/scheme30.tl656
-rw-r--r--libs/tgl/src/scheme31.tl668
-rw-r--r--libs/tgl/src/wingetopt.c82
-rw-r--r--libs/tgl/src/wingetopt.h32
37 files changed, 0 insertions, 11882 deletions
diff --git a/libs/tgl/src/auto-static-fetch-ds.c b/libs/tgl/src/auto-static-fetch-ds.c
deleted file mode 100644
index e69de29bb2..0000000000
--- a/libs/tgl/src/auto-static-fetch-ds.c
+++ /dev/null
diff --git a/libs/tgl/src/auto-static-free-ds.c b/libs/tgl/src/auto-static-free-ds.c
deleted file mode 100644
index e69de29bb2..0000000000
--- a/libs/tgl/src/auto-static-free-ds.c
+++ /dev/null
diff --git a/libs/tgl/src/auto-static-skip.c b/libs/tgl/src/auto-static-skip.c
deleted file mode 100644
index e69de29bb2..0000000000
--- a/libs/tgl/src/auto-static-skip.c
+++ /dev/null
diff --git a/libs/tgl/src/auto-static-store-ds.c b/libs/tgl/src/auto-static-store-ds.c
deleted file mode 100644
index e69de29bb2..0000000000
--- a/libs/tgl/src/auto-static-store-ds.c
+++ /dev/null
diff --git a/libs/tgl/src/auto-static.c b/libs/tgl/src/auto-static.c
deleted file mode 100644
index 89a0a176bf..0000000000
--- a/libs/tgl/src/auto-static.c
+++ /dev/null
@@ -1,328 +0,0 @@
-/*
- This file is part of tgl-library
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
- Copyright Vitaly Valtman 2014-2015
-*/
-
-#include "mtproto-common.h"
-#include "config.h"
-#include <string.h>
-
-#ifndef DISABLE_EXTF
-static int cur_token_len;
-static char *cur_token;
-static int cur_token_real_len;
-static int cur_token_quoted;
-
-#define expect_token(token,len) \
- if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return -1; } \
- local_next_token ();
-
-#define expect_token_ptr(token,len) \
- if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return 0; } \
- local_next_token ();
-
-#define expect_token_autocomplete(token,len) \
- if (cur_token_len == -3 && len >= cur_token_real_len && !memcmp (cur_token, token, cur_token_real_len)) { set_autocomplete_string (token); return -1; }\
- if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return -1; } \
- local_next_token ();
-
-#define expect_token_ptr_autocomplete(token,len) \
- if (cur_token_len == -3 && len >= cur_token_real_len && !memcmp (cur_token, token, cur_token_real_len)) { set_autocomplete_string (token); return 0; }\
- if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return 0; } \
- local_next_token ();
-
-
-static int autocomplete_mode;
-static char *autocomplete_string;
-static int (*autocomplete_fun)(const char *, int, int, char **);
-
-static void set_autocomplete_string (const char *s) {
- if (autocomplete_string) { free (autocomplete_string); }
- autocomplete_string = strdup (s);
- assert (autocomplete_string);
- autocomplete_mode = 1;
-}
-
-static void set_autocomplete_type (int (*f)(const char *, int, int, char **)) {
- autocomplete_fun = f;
- autocomplete_mode = 2;
-}
-
-static int is_int (void) {
- if (cur_token_len <= 0) { return 0; }
- char c = cur_token[cur_token_len];
- cur_token[cur_token_len] = 0;
- char *p = 0;
-
- if (strtoll (cur_token, &p, 10)) {}
- cur_token[cur_token_len] = c;
-
- return p == cur_token + cur_token_len;
-}
-
-static long long get_int (void) {
- if (cur_token_len <= 0) { return 0; }
- char c = cur_token[cur_token_len];
- cur_token[cur_token_len] = 0;
- char *p = 0;
-
- long long val = strtoll (cur_token, &p, 0);
- cur_token[cur_token_len] = c;
-
- return val;
-}
-
-static int is_double (void) {
- if (cur_token_len <= 0) { return 0; }
- char c = cur_token[cur_token_len];
- cur_token[cur_token_len] = 0;
- char *p = 0;
-
- if (strtod (cur_token, &p)) {}
- cur_token[cur_token_len] = c;
-
- return p == cur_token + cur_token_len;
-}
-
-static double get_double (void) {
- if (cur_token_len <= 0) { return 0; }
- char c = cur_token[cur_token_len];
- cur_token[cur_token_len] = 0;
- char *p = 0;
-
- double val = strtod (cur_token, &p);
- cur_token[cur_token_len] = c;
-
- return val;
-}
-
-static struct paramed_type *paramed_type_dup (struct paramed_type *P) {
- if (ODDP (P)) { return P; }
- struct paramed_type *R = malloc (sizeof (*R));
- assert (R);
- R->type = malloc (sizeof (*R->type));
- assert (R->type);
- memcpy (R->type, P->type, sizeof (*P->type));
- R->type->id = strdup (P->type->id);
- assert (R->type->id);
-
- if (P->type->params_num) {
- R->params = malloc (sizeof (void *) * P->type->params_num);
- assert (R->params);
- int i;
- for (i = 0; i < P->type->params_num; i++) {
- R->params[i] = paramed_type_dup (P->params[i]);
- }
- }
- return R;
-}
-
-void tgl_paramed_type_free (struct paramed_type *P) {
- if (ODDP (P)) { return; }
- if (P->type->params_num) {
- int i;
- for (i = 0; i < P->type->params_num; i++) {
- tgl_paramed_type_free (P->params[i]);
- }
- free (P->params);
- }
- free (P->type->id);
- free (P->type);
- free (P);
-}
-
-static char *buffer_pos, *buffer_end;
-
-static int is_wspc (char c) {
- return c <= 32 && c > 0;
-}
-
-static void skip_wspc (void) {
- while (buffer_pos < buffer_end && is_wspc (*buffer_pos)) {
- buffer_pos ++;
- }
-}
-
-static int is_letter (char c) {
- return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '.' || c == '_' || c == '-';
-}
-
-
-static char exp_buffer[1 << 25];;
-static int exp_buffer_pos;
-
-static inline int is_hex (char c) {
- return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f');
-}
-
-static inline int hex2dec (char c) {
- if (c >= '0' && c <= '9') { return c - '0'; }
- else { return c - 'a' + 10; }
-}
-
-static void expand_backslashed (char *s, int len) {
- int backslashed = 0;
- exp_buffer_pos = 0;
- int i = 0;
- while (i < len) {
- assert (i + 3 <= (1 << 25));
- if (backslashed) {
- backslashed = 0;
- switch (s[i ++]) {
- case 'n':
- exp_buffer[exp_buffer_pos ++] = '\n';
- break;
- case 'r':
- exp_buffer[exp_buffer_pos ++] = '\r';
- break;
- case 't':
- exp_buffer[exp_buffer_pos ++] = '\t';
- break;
- case 'b':
- exp_buffer[exp_buffer_pos ++] = '\b';
- break;
- case 'a':
- exp_buffer[exp_buffer_pos ++] = '\a';
- break;
- case '\\':
- exp_buffer[exp_buffer_pos ++] = '\\';
- break;
- case 'x':
- if (i + 2 > len || !is_hex (s[i]) || !is_hex (s[i + 1])) {
- exp_buffer_pos = -1;
- return;
- }
- exp_buffer[exp_buffer_pos ++] = hex2dec (s[i]) * 16 + hex2dec (s[i + 1]);
- i += 2;
- break;
- default:
- break;
- }
- } else {
- if (s[i] == '\\') {
- backslashed = 1;
- i ++;
- } else {
- exp_buffer[exp_buffer_pos ++] = s[i ++];
- }
- }
- }
-}
-
-static void local_next_token (void) {
- skip_wspc ();
- cur_token_quoted = 0;
- if (buffer_pos >= buffer_end) {
- cur_token_len = -3;
- cur_token_real_len = 0;
- return;
- }
- char c = *buffer_pos;
- if (is_letter (c)) {
- cur_token = buffer_pos;
- while (buffer_pos < buffer_end && is_letter (*buffer_pos)) {
- buffer_pos ++;
- }
- if (buffer_pos < buffer_end) {
- cur_token_len = buffer_pos - cur_token;
- } else {
- cur_token_real_len = buffer_pos - cur_token;
- cur_token_len = -3;
- }
- return;
- } else if (c == '"') {
- cur_token_quoted = 1;
- cur_token = buffer_pos ++;
- int backslashed = 0;
- while (buffer_pos < buffer_end && (*buffer_pos != '"' || backslashed)) {
- if (*buffer_pos == '\\') {
- backslashed ^= 1;
- } else {
- backslashed = 0;
- }
- buffer_pos ++;
- }
- if (*buffer_pos == '"') {
- buffer_pos ++;
- expand_backslashed (cur_token + 1, buffer_pos - cur_token - 2);
- if (exp_buffer_pos < 0) {
- cur_token_len = -2;
- } else {
- cur_token_len = exp_buffer_pos;
- cur_token = exp_buffer;
- }
- } else {
- cur_token_len = -2;
- }
- return;
- } else {
- if (c) {
- cur_token = buffer_pos ++;
- cur_token_len = 1;
- } else {
- cur_token_len = -3;
- cur_token_real_len = 0;
- }
- }
-}
-
-#define MAX_FVARS 100
-static struct paramed_type *fvars[MAX_FVARS];
-static int fvars_pos;
-
-static void add_var_to_be_freed (struct paramed_type *P) {
- assert (fvars_pos < MAX_FVARS);
- fvars[fvars_pos ++] = P;
-}
-
-static void free_vars_to_be_freed (void) {
- int i;
- for (i = 0; i < fvars_pos; i++) {
- tgl_paramed_type_free (fvars[i]);
- }
- fvars_pos = 0;
-}
-
-int tglf_extf_autocomplete (struct tgl_state *TLS, const char *text, int text_len, int index, char **R, char *data, int data_len) {
- if (index == -1) {
- buffer_pos = data;
- buffer_end = data + data_len;
- autocomplete_mode = 0;
- local_next_token ();
- struct paramed_type *P = autocomplete_function_any ();
- free_vars_to_be_freed ();
- if (P) { tgl_paramed_type_free (P); }
- }
- if (autocomplete_mode == 0) { return -1; }
- int len = strlen (text);
- if (autocomplete_mode == 1) {
- if (index >= 0) { return -1; }
- index = 0;
- if (!strncmp (text, autocomplete_string, len)) {
- *R = strdup (autocomplete_string);
- assert (*R);
- return index;
- } else {
- return -1;
- }
- } else {
- return autocomplete_fun (text, len, index, R);
- }
-}
-
-#endif
diff --git a/libs/tgl/src/auto/auto-fetch-ds.c b/libs/tgl/src/auto/auto-fetch-ds.c
index da360323a0..0ad9035f0c 100644
--- a/libs/tgl/src/auto/auto-fetch-ds.c
+++ b/libs/tgl/src/auto/auto-fetch-ds.c
@@ -3,7 +3,6 @@
#include "auto-fetch-ds.h"
#include "auto-skip.h"
#include "auto-types.h"
-#include "..\auto-static-fetch-ds.c"
#include "..\mtproto-common.h"
#else
#include "auto.h"
diff --git a/libs/tgl/src/auto/auto-free-ds.c b/libs/tgl/src/auto/auto-free-ds.c
index 1538633aff..bf5fcc7f4d 100644
--- a/libs/tgl/src/auto/auto-free-ds.c
+++ b/libs/tgl/src/auto/auto-free-ds.c
@@ -3,7 +3,6 @@
#include "auto-free-ds.h"
#include "auto-skip.h"
#include "auto-types.h"
-#include "..\auto-static-free-ds.c"
#include "..\mtproto-common.h"
#else
#include "auto.h"
diff --git a/libs/tgl/src/auto/auto-skip.c b/libs/tgl/src/auto/auto-skip.c
index 9ff28a1de2..fe91ddde00 100644
--- a/libs/tgl/src/auto/auto-skip.c
+++ b/libs/tgl/src/auto/auto-skip.c
@@ -1,7 +1,6 @@
#ifdef _MSC_VER
#include "..\auto.h"
#include "auto-skip.h"
-#include "..\auto-static-skip.c"
#include "..\mtproto-common.h"
#else
#include "auto.h"
diff --git a/libs/tgl/src/auto/auto-store-ds.c b/libs/tgl/src/auto/auto-store-ds.c
index 1a5356e4d0..3b963b6ef3 100644
--- a/libs/tgl/src/auto/auto-store-ds.c
+++ b/libs/tgl/src/auto/auto-store-ds.c
@@ -3,7 +3,6 @@
#include "auto-store-ds.h"
#include "auto-skip.h"
#include "auto-types.h"
-#include "..\auto-static-store-ds.c"
#include "..\mtproto-common.h"
#else
#include "auto.h"
diff --git a/libs/tgl/src/auto/scheme.tl b/libs/tgl/src/auto/scheme.tl
deleted file mode 100644
index e95425f435..0000000000
--- a/libs/tgl/src/auto/scheme.tl
+++ /dev/null
@@ -1,829 +0,0 @@
-int ?= Int;
-long ?= Long;
-double ?= Double;
-string ?= String;
-
-bytes string = Bytes;
-
-int128 long long = Int128;
-int256 long long long long = Int256;
-
-boolFalse#bc799737 = Bool;
-boolTrue#997275b5 = Bool;
-
-vector#1cb5c415 {t:Type} # [ t ] = Vector t;
-
-error#c4b9f9bb code:int text:string = Error;
-
-null#56730bcc = Null;
-
-inputPeerEmpty#7f3b18ea = InputPeer;
-inputPeerSelf#7da07ec9 = InputPeer;
-inputPeerContact#1023dbe8 user_id:int = InputPeer;
-inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
-inputPeerChat#179be863 chat_id:int = InputPeer;
-
-inputUserEmpty#b98886cf = InputUser;
-inputUserSelf#f7c1b13f = InputUser;
-inputUserContact#86e94f65 user_id:int = InputUser;
-inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
-
-inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
-
-inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
-
-inputMediaEmpty#9664f57f = InputMedia;
-inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia;
-inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia;
-inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
-inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
-inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia;
-inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia;
-inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia;
-
-inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
-inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
-inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
-
-inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
-inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint;
-
-inputPhotoEmpty#1cd7bf0d = InputPhoto;
-inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
-
-inputVideoEmpty#5508ec75 = InputVideo;
-inputVideo#ee579652 id:long access_hash:long = InputVideo;
-
-inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
-inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
-
-inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
-inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
-
-inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
-
-peerUser#9db1bc6d user_id:int = Peer;
-peerChat#bad0e5bb chat_id:int = Peer;
-
-storage.fileUnknown#aa963b05 = storage.FileType;
-storage.fileJpeg#7efe0e = storage.FileType;
-storage.fileGif#cae1aadf = storage.FileType;
-storage.filePng#a4f63c0 = storage.FileType;
-storage.filePdf#ae1e508d = storage.FileType;
-storage.fileMp3#528a0677 = storage.FileType;
-storage.fileMov#4b09ebbc = storage.FileType;
-storage.filePartial#40bc6f52 = storage.FileType;
-storage.fileMp4#b3cea0e4 = storage.FileType;
-storage.fileWebp#1081464c = storage.FileType;
-
-fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
-fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
-
-userEmpty#200250ba id:int = User;
-
-userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
-userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
-
-userStatusEmpty#9d05049 = UserStatus;
-userStatusOnline#edb93949 expires:int = UserStatus;
-userStatusOffline#8c703f was_online:int = UserStatus;
-
-chatEmpty#9ba2d800 id:int = Chat;
-chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
-chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
-
-chatFull#2e02a614 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> = ChatFull;
-
-
-chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
-
-chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
-chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
-
-chatPhotoEmpty#37c1011c = ChatPhoto;
-chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
-
-messageEmpty#83e5de54 id:int = Message;
-message#c3060325 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia reply_markup:flags.6?ReplyMarkup = Message;
-messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
-
-messageMediaEmpty#3ded6320 = MessageMedia;
-messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia;
-messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia;
-messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
-messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
-messageMediaUnsupported#9f84f49e = MessageMedia;
-
-messageActionEmpty#b6aef7b0 = MessageAction;
-messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
-messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
-messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
-messageActionChatDeletePhoto#95e3fbef = MessageAction;
-messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
-messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
-
-dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
-
-photoEmpty#2331b22d id:long = Photo;
-photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-
-photoSizeEmpty#e17e23c type:string = PhotoSize;
-photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
-photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
-
-videoEmpty#c10658a8 id:long = Video;
-video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-
-geoPointEmpty#1117dd5f = GeoPoint;
-geoPoint#2049d70c longitude:double latitude:double = GeoPoint;
-
-auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone;
-
-auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-auth.authorization#ff036af1 user:User = auth.Authorization;
-
-auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
-
-inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
-inputNotifyUsers#193b4417 = InputNotifyPeer;
-inputNotifyChats#4a95e84e = InputNotifyPeer;
-inputNotifyAll#a429b886 = InputNotifyPeer;
-
-inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
-inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
-
-inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
-
-peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
-peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
-
-peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
-peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
-
-wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
-
-userFull#5a89ac5b user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool bot_info:BotInfo = UserFull;
-
-contact#f911c994 user_id:int mutual:Bool = Contact;
-
-importedContact#d0028438 user_id:int client_id:long = ImportedContact;
-
-contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
-
-contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
-
-contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
-
-chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
-
-contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link;
-
-contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
-contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
-
-contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
-
-contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-
-contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
-
-messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-
-messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-
-messages.messageEmpty#3f4e0648 = messages.Message;
-
-messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage;
-
-messages.chats#64ff9fd5 chats:Vector<Chat> = messages.Chats;
-
-messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-
-messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory;
-
-inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
-inputMessagesFilterPhotos#9609a51c = MessagesFilter;
-inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
-inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
-inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter;
-inputMessagesFilterDocument#9eddf188 = MessagesFilter;
-inputMessagesFilterAudio#cfc87522 = MessagesFilter;
-
-updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;
-updateMessageID#4e90bfd6 id:int random_id:long = Update;
-updateDeleteMessages#a20db0e5 messages:Vector<int> pts:int pts_count:int = Update;
-updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
-updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
-updateChatParticipants#7761198 participants:ChatParticipants = Update;
-updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
-updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update;
-updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
-updateContactRegistered#2575bbb9 user_id:int date:int = Update;
-updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update;
-updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
-
-updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
-
-updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
-updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
-updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
-
-updatesTooLong#e317af7e = Updates;
-updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
-updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
-updateShort#78d4dec1 update:Update date:int = Updates;
-updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
-updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
-
-photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
-photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
-
-photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
-
-upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
-
-dcOptionL28#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
-dcOption#5d8c6cc flags:int id:int ip_address:string port:int = DcOption;
-
-config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector<DisabledFeature> = Config;
-
-nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
-
-help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
-help.noAppUpdate#c45a6536 = help.AppUpdate;
-
-help.inviteText#18cb9f78 message:string = help.InviteText;
-
-messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector<contacts.Link> seq:int = messages.SentMessage;
-
-inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
-
-inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer;
-
-geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
-
-geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
-geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
-geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
-
-geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
-
-geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
-
-geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-
-messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
-messageActionGeoChatCheckin#c7d53de = MessageAction;
-
-updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update;
-
-wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
-
-updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update;
-updateEncryptedChatTyping#1710f156 chat_id:int = Update;
-updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update;
-updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
-
-encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
-encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
-encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
-encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
-
-inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
-
-encryptedFileEmpty#c21f497e = EncryptedFile;
-encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
-
-inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
-inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
-inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
-
-inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
-
-encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
-encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
-
-messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
-messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
-
-messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
-messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
-
-inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
-
-inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
-
-updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
-updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
-updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
-
-inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
-inputMediaAudio#89938781 audio_id:InputAudio = InputMedia;
-inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-inputMediaDocument#d184e841 document_id:InputDocument = InputMedia;
-
-messageMediaDocument#2fda2204 document:Document = MessageMedia;
-messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
-
-inputAudioEmpty#d95adc84 = InputAudio;
-inputAudio#77d440ff id:long access_hash:long = InputAudio;
-
-inputDocumentEmpty#72f0eaae = InputDocument;
-inputDocument#18798952 id:long access_hash:long = InputDocument;
-
-inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
-inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
-
-audioEmpty#586988d8 id:long = Audio;
-audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
-
-documentEmpty#36f8c871 id:long = Document;
-document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
-document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
-
-help.support#17c6b5f6 phone_number:string user:User = help.Support;
-
-notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
-notifyUsers#b4c83b4c = NotifyPeer;
-notifyChats#c007cec3 = NotifyPeer;
-notifyAll#74d07c60 = NotifyPeer;
-
-updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
-updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
-
-auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-sendMessageTypingAction#16bf744e = SendMessageAction;
-sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
-sendMessageRecordVideoAction#a187d66f = SendMessageAction;
-sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction;
-sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction;
-sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
-sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction;
-sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction;
-sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction;
-sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction;
-sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction;
-sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
-sendMessageChooseContactAction#628cbc6f = SendMessageAction;
-
-contactFound#ea879f95 user_id:int = ContactFound;
-
-contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
-
-updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update;
-
-userStatusRecently#e26f42f1 = UserStatus;
-userStatusLastWeek#7bf09fc = UserStatus;
-userStatusLastMonth#77ebc742 = UserStatus;
-
-updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
-
-inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
-
-privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
-
-inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
-inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
-inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
-inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
-inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
-inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
-
-privacyValueAllowContacts#fffe1bac = PrivacyRule;
-privacyValueAllowAll#65427b82 = PrivacyRule;
-privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
-privacyValueDisallowContacts#f888fa1a = PrivacyRule;
-privacyValueDisallowAll#8b73e763 = PrivacyRule;
-privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule;
-
-account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
-
-accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
-
-account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
-
-updateUserPhone#12b9417b user_id:int phone:string = Update;
-
-documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
-documentAttributeAnimated#11b58939 = DocumentAttribute;
-documentAttributeStickerL28#994c9882 alt:string = DocumentAttribute;
-documentAttributeSticker#3a556302 alt:string stickerset:InputStickerSet = DocumentAttribute;
-documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
-documentAttributeAudio#51448e5 duration:int = DocumentAttribute;
-documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
-
-messages.stickersNotModified#f1749a22 = messages.Stickers;
-messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
-
-stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
-
-messages.allStickersNotModified#e86602c3 = messages.AllStickers;
-messages.allStickers#5ce352ec hash:string packs:Vector<StickerPack> sets:Vector<StickerSet> documents:Vector<Document> = messages.AllStickers;
-
-disabledFeature#ae636f24 feature:string description:string = DisabledFeature;
-
-updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update;
-updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update;
-
-messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages;
-
-contactLinkUnknown#5f4f9247 = ContactLink;
-contactLinkNone#feedd3ad = ContactLink;
-contactLinkHasPhone#268f3f59 = ContactLink;
-contactLinkContact#d502c2d0 = ContactLink;
-
-updateWebPage#2cc36971 webpage:WebPage = Update;
-
-webPageEmpty#eb1477e8 id:long = WebPage;
-webPagePending#c586da1c id:long date:int = WebPage;
-webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage;
-
-messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia;
-
-authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
-
-account.authorizations#1250abde authorizations:Vector<Authorization> = account.Authorizations;
-
-account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password;
-account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password;
-
-account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings;
-
-account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings;
-
-auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery;
-
-inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia;
-
-messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia;
-
-receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage;
-
-chatInviteEmpty#69df3769 = ExportedChatInvite;
-chatInviteExported#fc2e05bc link:string = ExportedChatInvite;
-
-chatInviteAlready#5a686d7c chat:Chat = ChatInvite;
-chatInvite#ce917dcd title:string = ChatInvite;
-
-messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction;
-
-updateReadMessagesContents#68c13933 messages:Vector<int> pts:int pts_count:int = Update;
-
-inputStickerSetEmpty#ffb62b95 = InputStickerSet;
-inputStickerSetID#9de7a269 id:long access_hash:long = InputStickerSet;
-inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet;
-
-stickerSet#a7a43b17 id:long access_hash:long title:string short_name:string = StickerSet;
-
-messages.stickerSet#b60a24a6 set:StickerSet packs:Vector<StickerPack> documents:Vector<Document> = messages.StickerSet;
-
-user#22e49072 flags:# id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int = User;
-
-botCommand#c27ac8c7 command:string description:string = BotCommand;
-botCommandOld#b79d22ab command:string params:string description:string = BotCommand;
-
-botInfoEmpty#bb2e37ce = BotInfo;
-botInfo#9cf585d user_id:int version:int share_text:string description:string commands:Vector<BotCommand> = BotInfo;
-
-keyboardButton#a2fa4880 text:string = KeyboardButton;
-
-keyboardButtonRow#77608b83 buttons:Vector<KeyboardButton> = KeyboardButtonRow;
-
-replyKeyboardHide#a03e5b85 flags:int = ReplyMarkup;
-replyKeyboardForceReply#f4108aa0 flags:int = ReplyMarkup;
-replyKeyboardMarkup#3502758c flags:int rows:Vector<KeyboardButtonRow> = ReplyMarkup;
-
----functions---
-
-invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
-
-invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
-
-auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
-auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
-auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
-auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
-auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
-auth.logOut#5717da40 = Bool;
-auth.resetAuthorizations#9fab0d1a = Bool;
-auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
-auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
-auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
-auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
-
-account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
-account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
-account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
-account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
-account.resetNotifySettings#db7e1747 = Bool;
-account.updateProfile#f0888d68 first_name:string last_name:string = User;
-account.updateStatus#6628562c offline:Bool = Bool;
-account.getWallPapers#c04cfac2 = Vector<WallPaper>;
-
-users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
-users.getFullUser#ca30a5b1 id:InputUser = UserFull;
-
-contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
-contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
-contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
-contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
-contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
-contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
-contacts.block#332b49fc id:InputUser = Bool;
-contacts.unblock#e54100bd id:InputUser = Bool;
-contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
-contacts.exportCard#84e53737 = Vector<int>;
-contacts.importCard#4fe196fe export_card:Vector<int> = User;
-
-messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
-messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
-messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
-messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
-messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
-messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
-messages.deleteMessages#a5f18925 id:Vector<int> = messages.AffectedMessages;
-messages.receivedMessages#5a954c0 max_id:int = Vector<ReceivedNotifyMessage>;
-messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
-messages.sendMessage#fc55e6b5 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup = messages.SentMessage;
-messages.sendMedia#c8f16791 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long reply_markup:flags.2?ReplyMarkup = Updates;
-messages.forwardMessages#55e1728d peer:InputPeer id:Vector<int> random_id:Vector<long> = Updates;
-messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
-messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
-messages.editChatTitle#dc452855 chat_id:int title:string = Updates;
-messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates;
-messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates;
-messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates;
-messages.createChat#9cb126e users:Vector<InputUser> title:string = Updates;
-
-updates.getState#edd4882a = updates.State;
-updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
-
-photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
-photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
-photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
-
-upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
-upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
-
-help.getConfig#c4f9186b = Config;
-help.getNearestDc#1fb33026 = NearestDc;
-help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
-help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
-help.getInviteText#a4a95186 lang_code:string = help.InviteText;
-
-photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
-
-messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates;
-messages.sendBroadcast#bf73f4da contacts:Vector<InputUser> random_id:Vector<long> message:string media:InputMedia = Updates;
-
-geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
-geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
-geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
-geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
-geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
-geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
-geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
-geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
-geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
-geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
-geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
-geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
-
-messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
-messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
-messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
-messages.discardEncryption#edd923c5 chat_id:int = Bool;
-messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
-messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
-messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
-messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
-
-upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
-
-initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
-
-help.getSupport#9cdf08cd = help.Support;
-
-auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
-
-messages.readMessageContents#36a73f77 id:Vector<int> = messages.AffectedMessages;
-
-account.checkUsername#2714d86c username:string = Bool;
-account.updateUsername#3e0bdd7c username:string = User;
-
-contacts.search#11f812d8 q:string limit:int = contacts.Found;
-
-account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
-account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
-account.deleteAccount#418d4e0b reason:string = Bool;
-account.getAccountTTL#8fc711d = AccountDaysTTL;
-account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
-
-invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
-
-contacts.resolveUsername#bf0131c username:string = User;
-
-account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode;
-account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
-
-messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
-messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;
-
-account.updateDeviceLocked#38df3532 period:int = Bool;
-
-auth.importBotAuthorization#67a3ff2c flags:int api_id:int api_hash:string bot_auth_token:string = auth.Authorization;
-
-messages.getWebPagePreview#25223e24 message:string = MessageMedia;
-
-account.getAuthorizations#e320c158 = account.Authorizations;
-account.resetAuthorization#df77f3bc hash:long = Bool;
-account.getPassword#548a30f5 = account.Password;
-account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings;
-account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool;
-
-auth.checkPassword#a63011e password_hash:bytes = auth.Authorization;
-auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery;
-auth.recoverPassword#4ea56e92 code:string = auth.Authorization;
-
-invokeWithoutUpdates#bf9459b7 {X:Type} query:!X = X;
-
-messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite;
-messages.checkChatInvite#3eadb1bb hash:string = ChatInvite;
-messages.importChatInvite#6c50051c hash:string = Updates;
-messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet;
-messages.installStickerSet#efbbfae9 stickerset:InputStickerSet = Bool;
-messages.uninstallStickerSet#f96e55de stickerset:InputStickerSet = Bool;
-messages.startBot#1b3e0ffc bot:InputUser chat_id:int random_id:long start_param:string = Updates;
----types---
-decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia;
-decryptedMessageMediaPhoto#32798a8c str_thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaGeoPoint#35480a59 latitude:double longitude:double = DecryptedMessageMedia;
-decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
-decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction;
-decryptedMessageMediaDocument#b095434b str_thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageActionReadMessages#c4f40be random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionDeleteMessages#65614304 random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction;
-
-decryptedMessage#204d3878 random_id:long ttl:int message:string media:DecryptedMessageMedia = DecryptedMessage;
-decryptedMessageService#73164160 random_id:long action:DecryptedMessageAction = DecryptedMessage;
-decryptedMessageMediaVideo#524a415d str_thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageLayer#1be31789 random_bytes:bytes layer:int in_seq_no:int out_seq_no:int message:DecryptedMessage = DecryptedMessageLayer;
-decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction;
-decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction;
-decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction;
-
-decryptedMessageActionRequestKey#f3c9611b exchange_id:long g_a:bytes = DecryptedMessageAction;
-decryptedMessageActionAcceptKey#6fe1735b exchange_id:long g_b:bytes key_fingerprint:long = DecryptedMessageAction;
-decryptedMessageActionAbortKey#dd05ec6b exchange_id:long = DecryptedMessageAction;
-decryptedMessageActionCommitKey#ec2e0b9b exchange_id:long key_fingerprint:long = DecryptedMessageAction;
-decryptedMessageActionNoop#a82fdd63 = DecryptedMessageAction;
-
-decryptedMessageMediaExternalDocument#fa95b0dd id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = DecryptedMessageMedia;
----functions---
----types---
-
-binlog.encrKey key:64*[int] = binlog.EncrKey;
-
-binlog.start = binlog.Update;
-
-binlog.dcOption dc:int name:string ip:string port:int = binlog.Update;
-binlog.dcOptionNew flags:int dc:int name:string ip:string port:int = binlog.Update;
-
-binlog.authKey dc:int key:%binlog.EncrKey = binlog.Update;
-binlog.defaultDc dc:int = binlog.Update;
-binlog.dcSigned dc:int = binlog.Update;
-
-binlog.ourId id:int = binlog.Update;
-
-binlog.setDhParams root:int prime:%binlog.EncrKey version:int = binlog.Update;
-
-binlog.setPts pts:int = binlog.Update;
-binlog.setQts qts:int = binlog.Update;
-binlog.setDate date:int = binlog.Update;
-binlog.setSeq seq:int = binlog.Update;
-
-binlog.encrChatDelete id:int = binlog.Update;
-binlog.encrChatNew#84977251 flags:# id:int
- access_hash:flags.17?long
- date:flags.18?int
- admin:flags.19?int
- user_id:flags.20?int
- key:flags.21?%binlog.EncrKey
- g_key:flags.22?%binlog.EncrKey
- state:flags.23?int
- ttl:flags.24?int
- layer:flags.25?int
- in_seq_no:flags.26?int last_in_seq_no:flags.26?int out_seq_no:flags.26?int
- key_fingerprint:flags.27?long
- = binlog.Update;
-
-binlog.encrChatExchangeNew#9d49488d flags:# id:int
- exchange_id:flags.17?long
- key:flags.18?%binlog.EncrKey
- state:flags.19?int
- = binlog.Update;
-
-binlog.userDelete id:int = binlog.Update;
-binlog.userNew#127cf2f9 flags:# id:int
- access_hash:flags.17?long
- first_name:flags.18?string last_name:flags.18?string
- phone:flags.19?string
- username:flags.20?string
- photo:flags.21?Photo
- real_first_name:flags.22?string real_last_name:flags.22?string
- user_photo:flags.23?UserProfilePhoto
- last_read_in:flags.24?int
- last_read_out:flags.25?int
- bot_info:flags.26?BotInfo
- = binlog.Update;
-
-binlog.chatNew#0a10aa92 flags:# id:int
- title:flags.17?string
- user_num:flags.18?int
- date:flags.19?int
- version:flags.20?int participants:flags.20?(Vector ChatParticipant)
- chat_photo:flags.21?ChatPhoto
- photo:flags.22?Photo
- admin:flags.23?int
- last_read_in:flags.24?int
- last_read_out:flags.25?int
- = binlog.Update;
-
-binlog.chatAddParticipant id:int version:int user_id:int inviter_id:int date:int = binlog.Update;
-binlog.chatDelParticipant id:int version:int user_id:int = binlog.Update;
-
-binlog.setMsgId old_id:long new_id:int = binlog.Update;
-binlog.messageDelete lid:long = binlog.Update;
-
-binlog.messageNew#427cfcdb flags:# lid:long
- from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int
- fwd_from_id:flags.18?int fwd_date:flags.18?int
- date:flags.19?int
- message:flags.20?string
- media:flags.21?MessageMedia
- action:flags.22?MessageAction
- reply_id:flags.23?int
- reply_markup:flags.24?ReplyMarkup
- = binlog.Update;
-
-binlog.messageEncrNew#6cf7cabc flags:# lid:long
- from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int
- //empty 18 bit
- date:flags.19?int
- message:flags.20?string
- encr_media:flags.21?DecryptedMessageMedia
- encr_action:flags.22?DecryptedMessageAction
- file:flags.23?EncryptedFile
- = binlog.Update;
-
-binlog.msgUpdate#6dd4d85f lid:long = binlog.Update;
-
-binlog.resetAuthorization = binlog.Update;
-
-
----functions---
----types---
-resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:(Vector long) = ResPQ;
-server_DH_params_fail#79cb045d nonce:int128 server_nonce:int128 new_nonce_hash:int128 = Server_DH_Params;
-server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
-
-p_q_inner_data#83c95aec pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 = P_Q_inner_data;
-p_q_inner_data_temp#3c6a84d4 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 expires_in:int = P_Q_inner_data;
-client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;
-
-dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
-dh_gen_retry#46dc1fb9 nonce:int128 server_nonce:int128 new_nonce_hash2:int128 = Set_client_DH_params_answer;
-dh_gen_fail#a69dae02 nonce:int128 server_nonce:int128 new_nonce_hash3:int128 = Set_client_DH_params_answer;
-
-server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data;
-
----functions---
-req_pq#60469778 nonce:int128 = ResPQ;
-req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;
-set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
----types---
-decryptedMessageMediaVideoL12#4cee6ef3 str_thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaAudioL12#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-
-updateMsgUpdate id:int pts:int pts_count:int = Update;
-
-messageMediaPhotoL27#c8c45a2a photo:Photo = MessageMedia;
-messageMediaVideoL27#a2d24290 video:Video = MessageMedia;
-//messageMediaDocumentL27#2fda2204 document:Document = MessageMedia;
-//messageMediaAudioL27#c6b68300 audio:Audio = MessageMedia;
----functions---
diff --git a/libs/tgl/src/auto/scheme.tlo b/libs/tgl/src/auto/scheme.tlo
deleted file mode 100644
index 02d3ca415e..0000000000
--- a/libs/tgl/src/auto/scheme.tlo
+++ /dev/null
Binary files differ
diff --git a/libs/tgl/src/auto/scheme2.tl b/libs/tgl/src/auto/scheme2.tl
deleted file mode 100644
index 1867166cb2..0000000000
--- a/libs/tgl/src/auto/scheme2.tl
+++ /dev/null
@@ -1,540 +0,0 @@
-int#a8509bda ? = Int
-long#22076cba ? = Long
-double#2210c154 ? = Double
-string#b5286e24 ? = String
-bytes#0ee1379f string = Bytes
-int128#7d36c439 long long = Int128
-int256#f2c798b3 long long long long = Int256
-boolFalse#bc799737 = Bool
-boolTrue#997275b5 = Bool
-vector#1cb5c415 t:Type # [ t ] = Vector t
-error#c4b9f9bb code:int text:string = Error
-null#56730bcc = Null
-inputPeerEmpty#7f3b18ea = InputPeer
-inputPeerSelf#7da07ec9 = InputPeer
-inputPeerContact#1023dbe8 user_id:int = InputPeer
-inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer
-inputPeerChat#179be863 chat_id:int = InputPeer
-inputUserEmpty#b98886cf = InputUser
-inputUserSelf#f7c1b13f = InputUser
-inputUserContact#86e94f65 user_id:int = InputUser
-inputUserForeign#655e74ff user_id:int access_hash:long = InputUser
-inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact
-inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile
-inputMediaEmpty#9664f57f = InputMedia
-inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia
-inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia
-inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia
-inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia
-inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia
-inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia
-inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia
-inputChatPhotoEmpty#1ca48f57 = InputChatPhoto
-inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto
-inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto
-inputGeoPointEmpty#e4c123d6 = InputGeoPoint
-inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint
-inputPhotoEmpty#1cd7bf0d = InputPhoto
-inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto
-inputVideoEmpty#5508ec75 = InputVideo
-inputVideo#ee579652 id:long access_hash:long = InputVideo
-inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation
-inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation
-inputPhotoCropAuto#ade6b004 = InputPhotoCrop
-inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop
-inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent
-peerUser#9db1bc6d user_id:int = Peer
-peerChat#bad0e5bb chat_id:int = Peer
-storage.fileUnknown#aa963b05 = storage.FileType
-storage.fileJpeg#007efe0e = storage.FileType
-storage.fileGif#cae1aadf = storage.FileType
-storage.filePng#0a4f63c0 = storage.FileType
-storage.filePdf#ae1e508d = storage.FileType
-storage.fileMp3#528a0677 = storage.FileType
-storage.fileMov#4b09ebbc = storage.FileType
-storage.filePartial#40bc6f52 = storage.FileType
-storage.fileMp4#b3cea0e4 = storage.FileType
-storage.fileWebp#1081464c = storage.FileType
-fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation
-fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation
-userEmpty#200250ba id:int = User
-userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto
-userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto
-userStatusEmpty#09d05049 = UserStatus
-userStatusOnline#edb93949 expires:int = UserStatus
-userStatusOffline#008c703f was_online:int = UserStatus
-chatEmpty#9ba2d800 id:int = Chat
-chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat
-chatForbidden#fb0ccc41 id:int title:string date:int = Chat
-chatFull#2e02a614 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector BotInfo = ChatFull
-chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant
-chatParticipantsForbidden#0fd2bb8a chat_id:int = ChatParticipants
-chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector ChatParticipant version:int = ChatParticipants
-chatPhotoEmpty#37c1011c = ChatPhoto
-chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto
-messageEmpty#83e5de54 id:int = Message
-message#c3060325 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia reply_markup:flags.6?ReplyMarkup = Message
-messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message
-messageMediaEmpty#3ded6320 = MessageMedia
-messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia
-messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia
-messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia
-messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia
-messageMediaUnsupported#9f84f49e = MessageMedia
-messageActionEmpty#b6aef7b0 = MessageAction
-messageActionChatCreate#a6638b9a title:string users:Vector int = MessageAction
-messageActionChatEditTitle#b5a1ce5a title:string = MessageAction
-messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction
-messageActionChatDeletePhoto#95e3fbef = MessageAction
-messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction
-messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction
-dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog
-photoEmpty#2331b22d id:long = Photo
-photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector PhotoSize = Photo
-photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector PhotoSize = Photo
-photoSizeEmpty#0e17e23c type:string = PhotoSize
-photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize
-photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize
-videoEmpty#c10658a8 id:long = Video
-video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video
-videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video
-geoPointEmpty#1117dd5f = GeoPoint
-geoPoint#2049d70c longitude:double latitude:double = GeoPoint
-auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone
-auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode
-auth.authorization#ff036af1 user:User = auth.Authorization
-auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization
-inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer
-inputNotifyUsers#193b4417 = InputNotifyPeer
-inputNotifyChats#4a95e84e = InputNotifyPeer
-inputNotifyAll#a429b886 = InputNotifyPeer
-inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents
-inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents
-inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings
-peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents
-peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents
-peerNotifySettingsEmpty#70a68512 = PeerNotifySettings
-peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings
-wallPaper#ccb03657 id:int title:string sizes:Vector PhotoSize color:int = WallPaper
-userFull#5a89ac5b user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool bot_info:BotInfo = UserFull
-contact#f911c994 user_id:int mutual:Bool = Contact
-importedContact#d0028438 user_id:int client_id:long = ImportedContact
-contactBlocked#561bc879 user_id:int date:int = ContactBlocked
-contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested
-contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus
-chatLocated#3631cf4c chat_id:int distance:int = ChatLocated
-contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link
-contacts.contactsNotModified#b74ba9d2 = contacts.Contacts
-contacts.contacts#6f8b8cb2 contacts:Vector Contact users:Vector User = contacts.Contacts
-contacts.importedContacts#ad524315 imported:Vector ImportedContact retry_contacts:Vector long users:Vector User = contacts.ImportedContacts
-contacts.blocked#1c138d15 blocked:Vector ContactBlocked users:Vector User = contacts.Blocked
-contacts.blockedSlice#900802a1 count:int blocked:Vector ContactBlocked users:Vector User = contacts.Blocked
-contacts.suggested#5649dcc5 results:Vector ContactSuggested users:Vector User = contacts.Suggested
-messages.dialogs#15ba6c40 dialogs:Vector Dialog messages:Vector Message chats:Vector Chat users:Vector User = messages.Dialogs
-messages.dialogsSlice#71e094f3 count:int dialogs:Vector Dialog messages:Vector Message chats:Vector Chat users:Vector User = messages.Dialogs
-messages.messages#8c718e87 messages:Vector Message chats:Vector Chat users:Vector User = messages.Messages
-messages.messagesSlice#0b446ae3 count:int messages:Vector Message chats:Vector Chat users:Vector User = messages.Messages
-messages.messageEmpty#3f4e0648 = messages.Message
-messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage
-messages.chats#64ff9fd5 chats:Vector Chat = messages.Chats
-messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector Chat users:Vector User = messages.ChatFull
-messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory
-inputMessagesFilterEmpty#57e2f66c = MessagesFilter
-inputMessagesFilterPhotos#9609a51c = MessagesFilter
-inputMessagesFilterVideo#9fc00e65 = MessagesFilter
-inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter
-inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter
-inputMessagesFilterDocument#9eddf188 = MessagesFilter
-inputMessagesFilterAudio#cfc87522 = MessagesFilter
-updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update
-updateMessageID#4e90bfd6 id:int random_id:long = Update
-updateDeleteMessages#a20db0e5 messages:Vector int pts:int pts_count:int = Update
-updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update
-updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update
-updateChatParticipants#07761198 participants:ChatParticipants = Update
-updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update
-updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update
-updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update
-updateContactRegistered#2575bbb9 user_id:int date:int = Update
-updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update
-updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update
-updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State
-updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference
-updates.difference#00f49ca0 new_messages:Vector Message new_encrypted_messages:Vector EncryptedMessage other_updates:Vector Update chats:Vector Chat users:Vector User state:updates.State = updates.Difference
-updates.differenceSlice#a8fb1981 new_messages:Vector Message new_encrypted_messages:Vector EncryptedMessage other_updates:Vector Update chats:Vector Chat users:Vector User intermediate_state:updates.State = updates.Difference
-updatesTooLong#e317af7e = Updates
-updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates
-updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates
-updateShort#78d4dec1 update:Update date:int = Updates
-updatesCombined#725b04c3 updates:Vector Update users:Vector User chats:Vector Chat date:int seq_start:int seq:int = Updates
-updates#74ae4240 updates:Vector Update users:Vector User chats:Vector Chat date:int seq:int = Updates
-photos.photos#8dca6aa5 photos:Vector Photo users:Vector User = photos.Photos
-photos.photosSlice#15051f54 count:int photos:Vector Photo users:Vector User = photos.Photos
-photos.photo#20212ca8 photo:Photo users:Vector User = photos.Photo
-upload.file#096a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File
-dcOptionL28#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption
-dcOption#05d8c6cc flags:int id:int ip_address:string port:int = DcOption
-config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector DcOption chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector DisabledFeature = Config
-nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc
-help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate
-help.noAppUpdate#c45a6536 = help.AppUpdate
-help.inviteText#18cb9f78 message:string = help.InviteText
-messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector contacts.Link seq:int = messages.SentMessage
-inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat
-inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer
-geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat
-geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage
-geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage
-geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage
-geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector Chat users:Vector User seq:int = geochats.StatedMessage
-geochats.located#48feb267 results:Vector ChatLocated messages:Vector GeoChatMessage chats:Vector Chat users:Vector User = geochats.Located
-geochats.messages#d1526db1 messages:Vector GeoChatMessage chats:Vector Chat users:Vector User = geochats.Messages
-geochats.messagesSlice#bc5863e8 count:int messages:Vector GeoChatMessage chats:Vector Chat users:Vector User = geochats.Messages
-messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction
-messageActionGeoChatCheckin#0c7d53de = MessageAction
-updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update
-wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper
-updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update
-updateEncryptedChatTyping#1710f156 chat_id:int = Update
-updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update
-updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update
-encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat
-encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat
-encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat
-encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat
-encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat
-inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat
-encryptedFileEmpty#c21f497e = EncryptedFile
-encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile
-inputEncryptedFileEmpty#1837c364 = InputEncryptedFile
-inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile
-inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile
-inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation
-encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage
-encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage
-messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig
-messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig
-messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage
-messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage
-inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile
-inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile
-updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update
-updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update
-updateDcOptions#8e5e9873 dc_options:Vector DcOption = Update
-inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia
-inputMediaAudio#89938781 audio_id:InputAudio = InputMedia
-inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector DocumentAttribute = InputMedia
-inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector DocumentAttribute = InputMedia
-inputMediaDocument#d184e841 document_id:InputDocument = InputMedia
-messageMediaDocument#2fda2204 document:Document = MessageMedia
-messageMediaAudio#c6b68300 audio:Audio = MessageMedia
-inputAudioEmpty#d95adc84 = InputAudio
-inputAudio#77d440ff id:long access_hash:long = InputAudio
-inputDocumentEmpty#72f0eaae = InputDocument
-inputDocument#18798952 id:long access_hash:long = InputDocument
-inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation
-inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation
-audioEmpty#586988d8 id:long = Audio
-audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio
-documentEmpty#36f8c871 id:long = Document
-document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector DocumentAttribute = Document
-document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document
-help.support#17c6b5f6 phone_number:string user:User = help.Support
-notifyPeer#9fd40bd8 peer:Peer = NotifyPeer
-notifyUsers#b4c83b4c = NotifyPeer
-notifyChats#c007cec3 = NotifyPeer
-notifyAll#74d07c60 = NotifyPeer
-updateUserBlocked#80ece81a user_id:int blocked:Bool = Update
-updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update
-auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode
-sendMessageTypingAction#16bf744e = SendMessageAction
-sendMessageCancelAction#fd5ec8f5 = SendMessageAction
-sendMessageRecordVideoAction#a187d66f = SendMessageAction
-sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction
-sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction
-sendMessageRecordAudioAction#d52f73f7 = SendMessageAction
-sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction
-sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction
-sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction
-sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction
-sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction
-sendMessageGeoLocationAction#176f8ba1 = SendMessageAction
-sendMessageChooseContactAction#628cbc6f = SendMessageAction
-contactFound#ea879f95 user_id:int = ContactFound
-contacts.found#0566000e results:Vector ContactFound users:Vector User = contacts.Found
-updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update
-userStatusRecently#e26f42f1 = UserStatus
-userStatusLastWeek#07bf09fc = UserStatus
-userStatusLastMonth#77ebc742 = UserStatus
-updatePrivacy#ee3b272a key:PrivacyKey rules:Vector PrivacyRule = Update
-inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey
-privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey
-inputPrivacyValueAllowContacts#0d09e07b = InputPrivacyRule
-inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule
-inputPrivacyValueAllowUsers#131cc67f users:Vector InputUser = InputPrivacyRule
-inputPrivacyValueDisallowContacts#0ba52007 = InputPrivacyRule
-inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule
-inputPrivacyValueDisallowUsers#90110467 users:Vector InputUser = InputPrivacyRule
-privacyValueAllowContacts#fffe1bac = PrivacyRule
-privacyValueAllowAll#65427b82 = PrivacyRule
-privacyValueAllowUsers#4d5bbe0c users:Vector int = PrivacyRule
-privacyValueDisallowContacts#f888fa1a = PrivacyRule
-privacyValueDisallowAll#8b73e763 = PrivacyRule
-privacyValueDisallowUsers#0c7f49b7 users:Vector int = PrivacyRule
-account.privacyRules#554abb6f rules:Vector PrivacyRule users:Vector User = account.PrivacyRules
-accountDaysTTL#b8d0afdf days:int = AccountDaysTTL
-account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode
-updateUserPhone#12b9417b user_id:int phone:string = Update
-documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute
-documentAttributeAnimated#11b58939 = DocumentAttribute
-documentAttributeStickerL28#994c9882 alt:string = DocumentAttribute
-documentAttributeSticker#3a556302 alt:string stickerset:InputStickerSet = DocumentAttribute
-documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute
-documentAttributeAudio#051448e5 duration:int = DocumentAttribute
-documentAttributeFilename#15590068 file_name:string = DocumentAttribute
-messages.stickersNotModified#f1749a22 = messages.Stickers
-messages.stickers#8a8ecd32 hash:string stickers:Vector Document = messages.Stickers
-stickerPack#12b299d4 emoticon:string documents:Vector long = StickerPack
-messages.allStickersNotModified#e86602c3 = messages.AllStickers
-messages.allStickers#5ce352ec hash:string packs:Vector StickerPack sets:Vector StickerSet documents:Vector Document = messages.AllStickers
-disabledFeature#ae636f24 feature:string description:string = DisabledFeature
-updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update
-updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update
-messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages
-contactLinkUnknown#5f4f9247 = ContactLink
-contactLinkNone#feedd3ad = ContactLink
-contactLinkHasPhone#268f3f59 = ContactLink
-contactLinkContact#d502c2d0 = ContactLink
-updateWebPage#2cc36971 webpage:WebPage = Update
-webPageEmpty#eb1477e8 id:long = WebPage
-webPagePending#c586da1c id:long date:int = WebPage
-webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage
-messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia
-authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization
-account.authorizations#1250abde authorizations:Vector Authorization = account.Authorizations
-account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password
-account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password
-account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings
-account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings
-auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery
-inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia
-messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia
-receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage
-chatInviteEmpty#69df3769 = ExportedChatInvite
-chatInviteExported#fc2e05bc link:string = ExportedChatInvite
-chatInviteAlready#5a686d7c chat:Chat = ChatInvite
-chatInvite#ce917dcd title:string = ChatInvite
-messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction
-updateReadMessagesContents#68c13933 messages:Vector int pts:int pts_count:int = Update
-inputStickerSetEmpty#ffb62b95 = InputStickerSet
-inputStickerSetID#9de7a269 id:long access_hash:long = InputStickerSet
-inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet
-stickerSet#a7a43b17 id:long access_hash:long title:string short_name:string = StickerSet
-messages.stickerSet#b60a24a6 set:StickerSet packs:Vector StickerPack documents:Vector Document = messages.StickerSet
-user#22e49072 flags:# id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int = User
-botCommand#c27ac8c7 command:string description:string = BotCommand
-botCommandOld#b79d22ab command:string params:string description:string = BotCommand
-botInfoEmpty#bb2e37ce = BotInfo
-botInfo#09cf585d user_id:int version:int share_text:string description:string commands:Vector BotCommand = BotInfo
-keyboardButton#a2fa4880 text:string = KeyboardButton
-keyboardButtonRow#77608b83 buttons:Vector KeyboardButton = KeyboardButtonRow
-replyKeyboardHide#a03e5b85 flags:int = ReplyMarkup
-replyKeyboardForceReply#f4108aa0 flags:int = ReplyMarkup
-replyKeyboardMarkup#3502758c flags:int rows:Vector KeyboardButtonRow = ReplyMarkup
-invokeAfterMsg#cb9f372d X:Type msg_id:long query:X = X
-invokeAfterMsgs#3dc4b4f0 X:Type msg_ids:Vector long query:X = X
-auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone
-auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode
-auth.sendCall#03c51564 phone_number:string phone_code_hash:string = Bool
-auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization
-auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization
-auth.logOut#5717da40 = Bool
-auth.resetAuthorizations#9fab0d1a = Bool
-auth.sendInvites#771c1d97 phone_numbers:Vector string message:string = Bool
-auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization
-auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization
-auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool
-account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool
-account.unregisterDevice#65c55b40 token_type:int token:string = Bool
-account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool
-account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings
-account.resetNotifySettings#db7e1747 = Bool
-account.updateProfile#f0888d68 first_name:string last_name:string = User
-account.updateStatus#6628562c offline:Bool = Bool
-account.getWallPapers#c04cfac2 = Vector WallPaper
-users.getUsers#0d91a548 id:Vector InputUser = Vector User
-users.getFullUser#ca30a5b1 id:InputUser = UserFull
-contacts.getStatuses#c4a353ee = Vector ContactStatus
-contacts.getContacts#22c6aa08 hash:string = contacts.Contacts
-contacts.importContacts#da30b32d contacts:Vector InputContact replace:Bool = contacts.ImportedContacts
-contacts.getSuggested#cd773428 limit:int = contacts.Suggested
-contacts.deleteContact#8e953744 id:InputUser = contacts.Link
-contacts.deleteContacts#59ab389e id:Vector InputUser = Bool
-contacts.block#332b49fc id:InputUser = Bool
-contacts.unblock#e54100bd id:InputUser = Bool
-contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked
-contacts.exportCard#84e53737 = Vector int
-contacts.importCard#4fe196fe export_card:Vector int = User
-messages.getMessages#4222fa74 id:Vector int = messages.Messages
-messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs
-messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages
-messages.search#07e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages
-messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory
-messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory
-messages.deleteMessages#a5f18925 id:Vector int = messages.AffectedMessages
-messages.receivedMessages#05a954c0 max_id:int = Vector ReceivedNotifyMessage
-messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool
-messages.sendMessage#fc55e6b5 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup = messages.SentMessage
-messages.sendMedia#c8f16791 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long reply_markup:flags.2?ReplyMarkup = Updates
-messages.forwardMessages#55e1728d peer:InputPeer id:Vector int random_id:Vector long = Updates
-messages.getChats#3c6aa187 id:Vector int = messages.Chats
-messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull
-messages.editChatTitle#dc452855 chat_id:int title:string = Updates
-messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates
-messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates
-messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates
-messages.createChat#09cb126e users:Vector InputUser title:string = Updates
-updates.getState#edd4882a = updates.State
-updates.getDifference#0a041495 pts:int date:int qts:int = updates.Difference
-photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto
-photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo
-photos.deletePhotos#87cf7f2f id:Vector InputPhoto = Vector long
-upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool
-upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File
-help.getConfig#c4f9186b = Config
-help.getNearestDc#1fb33026 = NearestDc
-help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate
-help.saveAppLog#6f02f748 events:Vector InputAppEvent = Bool
-help.getInviteText#a4a95186 lang_code:string = help.InviteText
-photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos
-messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates
-messages.sendBroadcast#bf73f4da contacts:Vector InputUser random_id:Vector long message:string media:InputMedia = Updates
-geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located
-geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages
-geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage
-geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull
-geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage
-geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage
-geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages
-geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages
-geochats.setTyping#08b8a729 peer:InputGeoChat typing:Bool = Bool
-geochats.sendMessage#061b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage
-geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage
-geochats.createGeoChat#0e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage
-messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig
-messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat
-messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat
-messages.discardEncryption#edd923c5 chat_id:int = Bool
-messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool
-messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool
-messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage
-messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage
-messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage
-messages.receivedQueue#55a5bb66 max_qts:int = Vector long
-upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool
-initConnection#69796de9 X:Type api_id:int device_model:string system_version:string app_version:string lang_code:string query:X = X
-help.getSupport#9cdf08cd = help.Support
-auth.sendSms#0da9f3e8 phone_number:string phone_code_hash:string = Bool
-messages.readMessageContents#36a73f77 id:Vector int = messages.AffectedMessages
-account.checkUsername#2714d86c username:string = Bool
-account.updateUsername#3e0bdd7c username:string = User
-contacts.search#11f812d8 q:string limit:int = contacts.Found
-account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules
-account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector InputPrivacyRule = account.PrivacyRules
-account.deleteAccount#418d4e0b reason:string = Bool
-account.getAccountTTL#08fc711d = AccountDaysTTL
-account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool
-invokeWithLayer#da9b0d0d X:Type layer:int query:X = X
-contacts.resolveUsername#0bf0131c username:string = User
-account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode
-account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User
-messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers
-messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers
-account.updateDeviceLocked#38df3532 period:int = Bool
-auth.importBotAuthorization#67a3ff2c flags:int api_id:int api_hash:string bot_auth_token:string = auth.Authorization
-messages.getWebPagePreview#25223e24 message:string = MessageMedia
-account.getAuthorizations#e320c158 = account.Authorizations
-account.resetAuthorization#df77f3bc hash:long = Bool
-account.getPassword#548a30f5 = account.Password
-account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings
-account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool
-auth.checkPassword#0a63011e password_hash:bytes = auth.Authorization
-auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery
-auth.recoverPassword#4ea56e92 code:string = auth.Authorization
-invokeWithoutUpdates#bf9459b7 X:Type query:X = X
-messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite
-messages.checkChatInvite#3eadb1bb hash:string = ChatInvite
-messages.importChatInvite#6c50051c hash:string = Updates
-messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet
-messages.installStickerSet#efbbfae9 stickerset:InputStickerSet = Bool
-messages.uninstallStickerSet#f96e55de stickerset:InputStickerSet = Bool
-messages.startBot#1b3e0ffc bot:InputUser chat_id:int random_id:long start_param:string = Updates
-decryptedMessageMediaEmpty#089f5c4a = DecryptedMessageMedia
-decryptedMessageMediaPhoto#32798a8c str_thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia
-decryptedMessageMediaGeoPoint#35480a59 latitude:double longitude:double = DecryptedMessageMedia
-decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia
-decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction
-decryptedMessageMediaDocument#b095434b str_thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia
-decryptedMessageActionReadMessages#0c4f40be random_ids:Vector long = DecryptedMessageAction
-decryptedMessageActionDeleteMessages#65614304 random_ids:Vector long = DecryptedMessageAction
-decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector long = DecryptedMessageAction
-decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction
-decryptedMessage#204d3878 random_id:long ttl:int message:string media:DecryptedMessageMedia = DecryptedMessage
-decryptedMessageService#73164160 random_id:long action:DecryptedMessageAction = DecryptedMessage
-decryptedMessageMediaVideo#524a415d str_thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia
-decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia
-decryptedMessageLayer#1be31789 random_bytes:bytes layer:int in_seq_no:int out_seq_no:int message:DecryptedMessage = DecryptedMessageLayer
-decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction
-decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction
-decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction
-decryptedMessageActionRequestKey#f3c9611b exchange_id:long g_a:bytes = DecryptedMessageAction
-decryptedMessageActionAcceptKey#6fe1735b exchange_id:long g_b:bytes key_fingerprint:long = DecryptedMessageAction
-decryptedMessageActionAbortKey#dd05ec6b exchange_id:long = DecryptedMessageAction
-decryptedMessageActionCommitKey#ec2e0b9b exchange_id:long key_fingerprint:long = DecryptedMessageAction
-decryptedMessageActionNoop#a82fdd63 = DecryptedMessageAction
-decryptedMessageMediaExternalDocument#fa95b0dd id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector DocumentAttribute = DecryptedMessageMedia
-binlog.encrKey#0377168f key:64*[ int ] = binlog.EncrKey
-binlog.start#3b06de69 = binlog.Update
-binlog.dcOption#f96feb32 dc:int name:string ip:string port:int = binlog.Update
-binlog.dcOptionNew#7c0d22d8 flags:int dc:int name:string ip:string port:int = binlog.Update
-binlog.authKey#71e8c156 dc:int key:%binlog.EncrKey = binlog.Update
-binlog.defaultDc#9e83dbdc dc:int = binlog.Update
-binlog.dcSigned#26451bb5 dc:int = binlog.Update
-binlog.ourId#68a870e8 id:int = binlog.Update
-binlog.setDhParams#eaeb7826 root:int prime:%binlog.EncrKey version:int = binlog.Update
-binlog.setPts#2ca8c939 pts:int = binlog.Update
-binlog.setQts#d95738ac qts:int = binlog.Update
-binlog.setDate#1d0f4b52 date:int = binlog.Update
-binlog.setSeq#6eeb2989 seq:int = binlog.Update
-binlog.encrChatDelete#ee1b38e8 id:int = binlog.Update
-binlog.encrChatNew#84977251 flags:# id:int access_hash:flags.17?long date:flags.18?int admin:flags.19?int user_id:flags.20?int key:flags.21?%binlog.EncrKey g_key:flags.22?%binlog.EncrKey state:flags.23?int ttl:flags.24?int layer:flags.25?int in_seq_no:flags.26?int last_in_seq_no:flags.26?int out_seq_no:flags.26?int key_fingerprint:flags.27?long = binlog.Update
-binlog.encrChatExchangeNew#9d49488d flags:# id:int exchange_id:flags.17?long key:flags.18?%binlog.EncrKey state:flags.19?int = binlog.Update
-binlog.userDelete#ac55d447 id:int = binlog.Update
-binlog.userNew#127cf2f9 flags:# id:int access_hash:flags.17?long first_name:flags.18?string last_name:flags.18?string phone:flags.19?string username:flags.20?string photo:flags.21?Photo real_first_name:flags.22?string real_last_name:flags.22?string user_photo:flags.23?UserProfilePhoto last_read_in:flags.24?int last_read_out:flags.25?int bot_info:flags.26?BotInfo = binlog.Update
-binlog.chatNew#0a10aa92 flags:# id:int title:flags.17?string user_num:flags.18?int date:flags.19?int version:flags.20?int participants:flags.20?Vector ChatParticipant chat_photo:flags.21?ChatPhoto photo:flags.22?Photo admin:flags.23?int last_read_in:flags.24?int last_read_out:flags.25?int = binlog.Update
-binlog.chatAddParticipant#535475ea id:int version:int user_id:int inviter_id:int date:int = binlog.Update
-binlog.chatDelParticipant#7dd1a1a2 id:int version:int user_id:int = binlog.Update
-binlog.setMsgId#3c873416 old_id:long new_id:int = binlog.Update
-binlog.messageDelete#847e77b1 lid:long = binlog.Update
-binlog.messageNew#427cfcdb flags:# lid:long from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int fwd_from_id:flags.18?int fwd_date:flags.18?int date:flags.19?int message:flags.20?string media:flags.21?MessageMedia action:flags.22?MessageAction reply_id:flags.23?int reply_markup:flags.24?ReplyMarkup = binlog.Update
-binlog.messageEncrNew#6cf7cabc flags:# lid:long from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int date:flags.19?int message:flags.20?string encr_media:flags.21?DecryptedMessageMedia encr_action:flags.22?DecryptedMessageAction file:flags.23?EncryptedFile = binlog.Update
-binlog.msgUpdate#6dd4d85f lid:long = binlog.Update
-binlog.resetAuthorization#83327955 = binlog.Update
-resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:Vector long = ResPQ
-server_DH_params_fail#79cb045d nonce:int128 server_nonce:int128 new_nonce_hash:int128 = Server_DH_Params
-server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params
-p_q_inner_data#83c95aec pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 = P_Q_inner_data
-p_q_inner_data_temp#3c6a84d4 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 expires_in:int = P_Q_inner_data
-client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data
-dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer
-dh_gen_retry#46dc1fb9 nonce:int128 server_nonce:int128 new_nonce_hash2:int128 = Set_client_DH_params_answer
-dh_gen_fail#a69dae02 nonce:int128 server_nonce:int128 new_nonce_hash3:int128 = Set_client_DH_params_answer
-server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data
-req_pq#60469778 nonce:int128 = ResPQ
-req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params
-set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer
-decryptedMessageMediaVideoL12#4cee6ef3 str_thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia
-decryptedMessageMediaAudioL12#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia
-updateMsgUpdate#03114739 id:int pts:int pts_count:int = Update
-messageMediaPhotoL27#c8c45a2a photo:Photo = MessageMedia
-messageMediaVideoL27#a2d24290 video:Video = MessageMedia
diff --git a/libs/tgl/src/binlog.tl b/libs/tgl/src/binlog.tl
deleted file mode 100644
index a0c52424d7..0000000000
--- a/libs/tgl/src/binlog.tl
+++ /dev/null
@@ -1,102 +0,0 @@
----types---
-
-binlog.encrKey key:64*[int] = binlog.EncrKey;
-
-binlog.start = binlog.Update;
-
-binlog.dcOption dc:int name:string ip:string port:int = binlog.Update;
-binlog.dcOptionNew flags:int dc:int name:string ip:string port:int = binlog.Update;
-
-binlog.authKey dc:int key:%binlog.EncrKey = binlog.Update;
-binlog.defaultDc dc:int = binlog.Update;
-binlog.dcSigned dc:int = binlog.Update;
-
-binlog.ourId id:int = binlog.Update;
-
-binlog.setDhParams root:int prime:%binlog.EncrKey version:int = binlog.Update;
-
-binlog.setPts pts:int = binlog.Update;
-binlog.setQts qts:int = binlog.Update;
-binlog.setDate date:int = binlog.Update;
-binlog.setSeq seq:int = binlog.Update;
-
-binlog.encrChatDelete id:int = binlog.Update;
-binlog.encrChatNew#84977251 flags:# id:int
- access_hash:flags.17?long
- date:flags.18?int
- admin:flags.19?int
- user_id:flags.20?int
- key:flags.21?%binlog.EncrKey
- g_key:flags.22?%binlog.EncrKey
- state:flags.23?int
- ttl:flags.24?int
- layer:flags.25?int
- in_seq_no:flags.26?int last_in_seq_no:flags.26?int out_seq_no:flags.26?int
- key_fingerprint:flags.27?long
- = binlog.Update;
-
-binlog.encrChatExchangeNew#9d49488d flags:# id:int
- exchange_id:flags.17?long
- key:flags.18?%binlog.EncrKey
- state:flags.19?int
- = binlog.Update;
-
-binlog.userDelete id:int = binlog.Update;
-binlog.userNew#127cf2f9 flags:# id:int
- access_hash:flags.17?long
- first_name:flags.18?string last_name:flags.18?string
- phone:flags.19?string
- username:flags.20?string
- photo:flags.21?Photo
- real_first_name:flags.22?string real_last_name:flags.22?string
- user_photo:flags.23?UserProfilePhoto
- last_read_in:flags.24?int
- last_read_out:flags.25?int
- bot_info:flags.26?BotInfo
- = binlog.Update;
-
-binlog.chatNew#0a10aa92 flags:# id:int
- title:flags.17?string
- user_num:flags.18?int
- date:flags.19?int
- version:flags.20?int participants:flags.20?(Vector ChatParticipant)
- chat_photo:flags.21?ChatPhoto
- photo:flags.22?Photo
- admin:flags.23?int
- last_read_in:flags.24?int
- last_read_out:flags.25?int
- = binlog.Update;
-
-binlog.chatAddParticipant id:int version:int user_id:int inviter_id:int date:int = binlog.Update;
-binlog.chatDelParticipant id:int version:int user_id:int = binlog.Update;
-
-binlog.setMsgId old_id:long new_id:int = binlog.Update;
-binlog.messageDelete lid:long = binlog.Update;
-
-binlog.messageNew#427cfcdb flags:# lid:long
- from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int
- fwd_from_id:flags.18?int fwd_date:flags.18?int
- date:flags.19?int
- message:flags.20?string
- media:flags.21?MessageMedia
- action:flags.22?MessageAction
- reply_id:flags.23?int
- reply_markup:flags.24?ReplyMarkup
- = binlog.Update;
-
-binlog.messageEncrNew#6cf7cabc flags:# lid:long
- from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int
- //empty 18 bit
- date:flags.19?int
- message:flags.20?string
- encr_media:flags.21?DecryptedMessageMedia
- encr_action:flags.22?DecryptedMessageAction
- file:flags.23?EncryptedFile
- = binlog.Update;
-
-binlog.msgUpdate#6dd4d85f lid:long = binlog.Update;
-
-binlog.resetAuthorization = binlog.Update;
-
-
----functions---
diff --git a/libs/tgl/src/encrypted_scheme.tl b/libs/tgl/src/encrypted_scheme.tl
deleted file mode 100644
index 6fff5b6a55..0000000000
--- a/libs/tgl/src/encrypted_scheme.tl
+++ /dev/null
@@ -1 +0,0 @@
-encrypted_scheme23.tl \ No newline at end of file
diff --git a/libs/tgl/src/encrypted_scheme16.tl b/libs/tgl/src/encrypted_scheme16.tl
deleted file mode 100644
index eb58ed4475..0000000000
--- a/libs/tgl/src/encrypted_scheme16.tl
+++ /dev/null
@@ -1,22 +0,0 @@
----types---
-decryptedMessageLayer#99a438cf layer:int message:DecryptedMessage = DecryptedMessageLayer;
-decryptedMessage#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
-decryptedMessageService#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
-decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia;
-decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-//decryptedMessageMediaVideo#4cee6ef3 thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaGeoPoint#35480a59 lat:double long:double = DecryptedMessageMedia;
-decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
-decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction;
-
-decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-//decryptedMessageMediaAudio#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-
-decryptedMessageMediaVideo#524a415d thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageActionReadMessages#c4f40be random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionDeleteMessages#65614304 random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction;
-decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction;
----functions---
diff --git a/libs/tgl/src/encrypted_scheme17.tl b/libs/tgl/src/encrypted_scheme17.tl
deleted file mode 100644
index 95e661bda5..0000000000
--- a/libs/tgl/src/encrypted_scheme17.tl
+++ /dev/null
@@ -1,31 +0,0 @@
----types---
-decryptedMessageLayer#1be31789 layer:int message:DecryptedMessage = DecryptedMessageLayer;
-decryptedMessage_l16#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
-decryptedMessageService_l16#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
-
-decryptedMessage#204d3878 in_seq_no:int out_seq_no:int ttl:int random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
-decryptedMessageService#73164160 in_seq_no:int out_seq_no:int random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
-
-decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia;
-decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-//decryptedMessageMediaVideo#4cee6ef3 thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaGeoPoint#35480a59 lat:double long:double = DecryptedMessageMedia;
-decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
-decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction;
-
-decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-//decryptedMessageMediaAudio#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-
-decryptedMessageMediaVideo#524a415d thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageActionReadMessages#c4f40be random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionDeleteMessages#65614304 random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction;
-decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction;
-
-decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction;
-
-decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction;
-
----functions---
diff --git a/libs/tgl/src/encrypted_scheme18.tl b/libs/tgl/src/encrypted_scheme18.tl
deleted file mode 100644
index 134f719973..0000000000
--- a/libs/tgl/src/encrypted_scheme18.tl
+++ /dev/null
@@ -1,38 +0,0 @@
----types---
-decryptedMessageLayer#1be31789 layer:int message:DecryptedMessage = DecryptedMessageLayer;
-decryptedMessage_l16#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
-decryptedMessageService_l16#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
-
-decryptedMessage#204d3878 in_seq_no:int out_seq_no:int ttl:int random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
-decryptedMessageService#73164160 in_seq_no:int out_seq_no:int random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
-
-decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia;
-decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-//decryptedMessageMediaVideo#4cee6ef3 thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaGeoPoint#35480a59 latitude:double longitude:double = DecryptedMessageMedia;
-decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
-decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction;
-
-decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-//decryptedMessageMediaAudio#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-
-decryptedMessageMediaVideo#524a415d thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageActionReadMessages#c4f40be random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionDeleteMessages#65614304 random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction;
-decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction;
-
-decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction;
-
-decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction;
-
-decryptedMessageActionRequestKey exchange_id:long g_a:string = DecryptedMessageAction;
-decryptedMessageActionAcceptKey exchange_id:long g_b:string key_fingerprint:long = DecryptedMessageAction;
-decryptedMessageActionCommitKey exchange_id:long key_fingerprint:long = DecryptedMessageAction;
-decryptedMessageActionAbortKey exchange_id:long = DecryptedMessageAction;
-decryptedMessageActionNoop = DecryptedMessageAction;
-
-
----functions---
diff --git a/libs/tgl/src/encrypted_scheme23.tl b/libs/tgl/src/encrypted_scheme23.tl
deleted file mode 100644
index ae31312de1..0000000000
--- a/libs/tgl/src/encrypted_scheme23.tl
+++ /dev/null
@@ -1,29 +0,0 @@
----types---
-decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia;
-decryptedMessageMediaPhoto#32798a8c str_thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaGeoPoint#35480a59 latitude:double longitude:double = DecryptedMessageMedia;
-decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
-decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction;
-decryptedMessageMediaDocument#b095434b str_thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageActionReadMessages#c4f40be random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionDeleteMessages#65614304 random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction;
-
-decryptedMessage#204d3878 random_id:long ttl:int message:string media:DecryptedMessageMedia = DecryptedMessage;
-decryptedMessageService#73164160 random_id:long action:DecryptedMessageAction = DecryptedMessage;
-decryptedMessageMediaVideo#524a415d str_thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageLayer#1be31789 random_bytes:bytes layer:int in_seq_no:int out_seq_no:int message:DecryptedMessage = DecryptedMessageLayer;
-decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction;
-decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction;
-decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction;
-
-decryptedMessageActionRequestKey#f3c9611b exchange_id:long g_a:bytes = DecryptedMessageAction;
-decryptedMessageActionAcceptKey#6fe1735b exchange_id:long g_b:bytes key_fingerprint:long = DecryptedMessageAction;
-decryptedMessageActionAbortKey#dd05ec6b exchange_id:long = DecryptedMessageAction;
-decryptedMessageActionCommitKey#ec2e0b9b exchange_id:long key_fingerprint:long = DecryptedMessageAction;
-decryptedMessageActionNoop#a82fdd63 = DecryptedMessageAction;
-
-decryptedMessageMediaExternalDocument#fa95b0dd id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = DecryptedMessageMedia;
----functions---
diff --git a/libs/tgl/src/errors b/libs/tgl/src/errors
deleted file mode 100644
index 481a144737..0000000000
--- a/libs/tgl/src/errors
+++ /dev/null
@@ -1,11 +0,0 @@
-type of errors that tgl can set:
-
-EPROTO: server returned error for query. Some kinds of error (such as FLOOD_WAIT) tgl can handle by itself, but others it can not. In most cases it means bug in tgl or invalid parameter supplied to method (such as message id).
-
-EINVAL: tgl detected invalid argument supplied before sending query to server. For example user instead of chat or bad msg id.
-
-ENOENT: tgl received empty response from server. For example when user tried to get message by id
-
-EBADF: tgl can not open file on disk or file is empty
-
-E2BIG: supplied file is too big
diff --git a/libs/tgl/src/event-old.h b/libs/tgl/src/event-old.h
deleted file mode 100644
index b920e68f02..0000000000
--- a/libs/tgl/src/event-old.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef __EVENT_OLD_H__
-#define __EVENT_OLD_H__
-
-#include <assert.h>
-#include <stdlib.h>
-
-#define BEV_EVENT_READ EVBUFFER_READ
-#define BEV_EVENT_WRITE EVBUFFER_WRITE
-#define BEV_EVENT_EOF EVBUFFER_EOF
-#define BEV_EVENT_ERROR EVBUFFER_ERROR
-#define BEV_EVENT_TIMEOUT EVBUFFER_TIMEOUT
-
-typedef int evutil_socket_t;
-
-static inline struct event *event_new (struct event_base *base, int fd, int what, void(*callback)(int, short, void *), void *arg) __attribute__ ((unused));
-static inline struct event *event_new (struct event_base *base, int fd, int what, void(*callback)(int, short, void *), void *arg) {
- struct event *ev = malloc (sizeof (*ev));
- event_set (ev, fd, what, callback, arg);
- event_base_set (base, ev);
- return ev;
-}
-
-static inline struct event *evtimer_new (struct event_base *base, void(*callback)(int, short, void *), void *arg) __attribute__ ((unused));
-static inline struct event *evtimer_new (struct event_base *base, void(*callback)(int, short, void *), void *arg) {
- struct event *ev = malloc (sizeof (*ev));
- event_set (ev, -1, 0, callback, arg);
- event_base_set (base, ev);
- return ev;
-}
-
-static void event_free (struct event *ev) __attribute__ ((unused));
-static void event_free (struct event *ev) {
- event_del (ev);
- free (ev);
-}
-
-static struct bufferevent *bufferevent_socket_new (struct event_base *base, int fd, int flags) __attribute__ ((unused));
-static struct bufferevent *bufferevent_socket_new (struct event_base *base, int fd, int flags) {
- assert (!flags);
- struct bufferevent *bev = bufferevent_new(fd, 0, 0, 0, 0);
- bufferevent_base_set (base, bev);
- return bev;
-}
-
-static inline void *event_get_callback_arg(const struct event *ev) {
- return ev->ev_arg;
-}
-#endif
diff --git a/libs/tgl/src/generate.c b/libs/tgl/src/generate.c
deleted file mode 100644
index 68bf30272d..0000000000
--- a/libs/tgl/src/generate.c
+++ /dev/null
@@ -1,3219 +0,0 @@
-/*
- This file is part of tgl-libary/generate
-
- Tgl-library/generate is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- Tgl-library/generate is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this tgl-library/generate. If not, see <http://www.gnu.org/licenses/>.
-
- Copyright Vitaly Valtman 2014-2015
-
- It is derivative work of VK/KittenPHP-DB-Engine (https://github.com/vk-com/kphp-kdb/)
- Copyright 2012-2013 Vkontakte Ltd
- 2012-2013 Vitaliy Valtman
-*/
-
-#define _GNU_SOURCE
-
-#include "config.h"
-#include <stdio.h>
-#include <signal.h>
-#ifdef HAVE_EXECINFO_H
-#include <execinfo.h>
-#endif
-#if defined(WIN32) || defined(_WIN32)
-#include <io.h>
-#include <stdint.h>
-#include <string.h>
-#ifndef __MINGW32__
-#include "wingetopt.h"
-#endif
-#else
-#include <unistd.h>
-#endif
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <share.h>
-#include <assert.h>
-#include <string.h>
-
-#include "..\tl-parser\src\tl-tl.h"
-#include "generate.h"
-
-#include "tree.h"
-
-int header;
-
-#if defined(WIN32) || defined(_WIN32)
-char* strndup(const char* str, size_t n) {
- size_t len = n;
- const char *end = memchr(str, '\0', n);
- if (end)
- len = end - str;
-
- char* dupstr = malloc(len + 1);
- if (dupstr != NULL) {
- memcpy(dupstr, str, len);
- dupstr[len] = '\0';
- }
- return dupstr;
-}
-
-#define lrand48() rand()
-#define _PRINTF_INT64_ "I64"
-#else
-#define _PRINTF_INT64_ "ll"
-#endif
-
-#define tl_type_name_cmp(a,b) (a->name > b->name ? 1 : a->name < b->name ? -1 : 0)
-
-DEFINE_TREE (tl_type, struct tl_type *, tl_type_name_cmp, 0)
-DEFINE_TREE (tl_combinator, struct tl_combinator *, tl_type_name_cmp, 0)
-
-struct tree_tl_type *type_tree;
-struct tree_tl_combinator *function_tree;
-
-void tl_function_insert_by_name (struct tl_combinator *c) {
- function_tree = tree_insert_tl_combinator (function_tree, c, lrand48 ());
-}
-
-struct tl_type *tl_type_get_by_name (int name) {
- static struct tl_type t;
- t.name = name;
-
- return tree_lookup_tl_type (type_tree, &t);
-}
-
-void tl_type_insert_by_name (struct tl_type *t) {
- type_tree = tree_insert_tl_type (type_tree, t, lrand48 ());
-}
-
-int is_empty (struct tl_type *t) {
- if (t->name == NAME_INT || t->name == NAME_LONG || t->name == NAME_DOUBLE || t->name == NAME_STRING) { return 1; }
- if (t->constructors_num != 1) { return 0; }
- int count = 0;
- int i;
- struct tl_combinator *c = t->constructors[0];
- for (i = 0; i < c->args_num; i++) {
- if (!(c->args[i]->flags & FLAG_OPT_VAR)) { count ++; }
- }
- return count == 1;
-}
-
-
-static char buf[1 << 20];
-int buf_size;
-int *buf_ptr = (int *)buf;
-int *buf_end;
-#ifndef DISABLE_EXTF
-int skip_only = 0;
-#else
-int skip_only = 1;
-#endif
-
-int verbosity;
-
-int get_int (void) {
- assert (buf_ptr < buf_end);
- return *(buf_ptr ++);
-}
-
-long long get_long (void) {
- assert (buf_ptr + 1 < buf_end);
- long long r = *(long long *)buf_ptr;
- buf_ptr += 2;
- return r;
-}
-
-static void *malloc0 (int size) {
- void *r = malloc (size);
- assert (r);
- memset (r, 0, size);
- return r;
-}
-
-char *get_string (void) {
- int l = *(unsigned char *)buf_ptr;
- assert (l != 0xff);
-
- char *res;
- int tlen = 0;
- if (l == 0xfe) {
- l = ((unsigned)get_int ()) >> 8;
- res = (char *)buf_ptr;
- tlen = l;
- } else {
- res = ((char *)buf_ptr) + 1;
- tlen = 1 + l;
- }
-
- int len = l;
-
- tlen += ((-tlen) & 3);
- assert (!(tlen & 3));
-
- buf_ptr += tlen / 4;
- assert (buf_ptr <= buf_end);
-
- char *r = strndup (res, len);
- assert (r);
- return r;
-}
-
-
-int tn, fn, cn;
-struct tl_type **tps;
-struct tl_combinator **fns;
-
-struct tl_tree *read_tree (int *var_num);
-struct tl_tree *read_nat_expr (int *var_num);
-struct tl_tree *read_type_expr (int *var_num);
-int read_args_list (struct arg **args, int args_num, int *var_num);
-
-#define use_var_nat_full_form(x) 0
-
-void *int_to_var_nat_const_init (long long x) {
- if (use_var_nat_full_form (x)) {
- struct tl_tree_nat_const *T = malloc (sizeof (*T));
- assert (T);
- T->self.flags = 0;
- T->self.methods = &tl_pnat_const_full_methods;
- T->value = x;
- return T;
- } else {
- return (void *)(long)(x * 2 - 0x80000001l);
- }
-}
-
-long long var_nat_const_to_int (void *x) {
- if (((long)x) & 1) {
- return (((long)x) + 0x80000001l) / 2;
- } else {
- return ((struct tl_tree_nat_const *)x)->value;
- }
-}
-
-int tl_tree_type_type (struct tl_tree *x) {
- return NODE_TYPE_TYPE;
-}
-
-int tl_tree_type_array (struct tl_tree *x) {
- return NODE_TYPE_ARRAY;
-}
-
-int tl_tree_type_nat_const (struct tl_tree *x) {
- return NODE_TYPE_NAT_CONST;
-}
-
-int tl_tree_type_var_num (struct tl_tree *x) {
- return NODE_TYPE_VAR_NUM;
-}
-
-int tl_tree_type_var_type (struct tl_tree *x) {
- return NODE_TYPE_VAR_TYPE;
-}
-
-struct tl_tree_methods tl_var_num_methods = {
- .type = tl_tree_type_var_num
-};
-
-struct tl_tree_methods tl_var_type_methods = {
- .type = tl_tree_type_var_type
-};
-
-struct tl_tree_methods tl_type_methods = {
- .type = tl_tree_type_type
-};
-
-struct tl_tree_methods tl_nat_const_methods = {
- .type = tl_tree_type_nat_const
-};
-
-struct tl_tree_methods tl_array_methods = {
- .type = tl_tree_type_array
-};
-
-struct tl_tree_methods tl_ptype_methods = {
- .type = tl_tree_type_type
-};
-
-struct tl_tree_methods tl_parray_methods = {
- .type = tl_tree_type_array
-};
-
-struct tl_tree_methods tl_pvar_num_methods = {
- .type = tl_tree_type_var_num
-};
-
-struct tl_tree_methods tl_pvar_type_methods = {
- .type = tl_tree_type_var_type
-};
-
-struct tl_tree_methods tl_nat_const_full_methods = {
- .type = tl_tree_type_nat_const
-};
-
-struct tl_tree_methods tl_pnat_const_full_methods = {
- .type = tl_tree_type_nat_const
-};
-
-struct tl_tree *read_num_const (int *var_num) {
- return (void *)int_to_var_nat_const_init (get_int ());
-}
-
-
-void print_c_type_name (struct tl_tree *t, char *offset, int in) {
- int x = TL_TREE_METHODS(t)->type (t);
-
- if (x == NODE_TYPE_VAR_TYPE) {
- printf ("void *");
- return;
- }
-
- if (x == NODE_TYPE_ARRAY) {
- struct tl_tree_array *a = (void *)t;
- assert (a->args_num == 1);
- print_c_type_name (a->args[0]->type, offset, in);
- printf ("*");
- return;
- }
-
- struct tl_type *T = ((struct tl_tree_type *)t)->type;
- if (!strcmp (T->id, "Vector") && in) {
- printf ("struct {\n");
- printf ("%s int *cnt;\n", offset);
- printf ("%s ", offset);
- print_c_type_name (((struct tl_tree_type *)t)->children[0], offset, in);
- printf ("*data;\n");
- printf ("%s} *", offset);
- return;
- }
- if (!strcmp (T->id, "Long")) {
- printf ("long long *");
- return;
- }
- if (!strcmp (T->id, "#") || !strcmp (T->id, "Int")) {
- printf ("int *");
- return;
- }
- if (!strcmp (T->id, "Double")) {
- printf ("double *");
- return;
- }
- if (!strcmp (T->id, "String") || !strcmp (T->id, "Bytes")) {
- /*printf ("struct {\n");
- printf ("%s int len;\n", offset);
- printf ("%s char *data;\n", offset);
- printf ("%s} *", offset);
- return;*/
-
- printf ("struct tl_ds_string *");
- return;
- }
- printf ("struct tl_ds_%s *", T->print_id);
-}
-
-int gen_uni_skip (struct tl_tree *t, char *cur_name, int *vars, int first, int fun) {
- assert (t);
- int x = TL_TREE_METHODS (t)->type (t);
- int l = 0;
- int i;
- int j;
- struct tl_tree_type *t1;
- struct tl_tree_array *t2;
- int y;
- int L = strlen (cur_name);
- char *fail = fun == 1 ? "return 0;" : fun == -1 ? "return;" : "return -1;";
- switch (x) {
- case NODE_TYPE_TYPE:
- t1 = (void *)t;
- if (!first) {
- printf (" if (ODDP(%s) || %s->type->name != 0x%08x) { %s }\n", cur_name, cur_name, t1->type->name, fail);
- } else {
- printf (" if (ODDP(%s) || (%s->type->name != 0x%08x && %s->type->name != 0x%08x)) { %s }\n", cur_name, cur_name, t1->type->name, cur_name, ~t1->type->name, fail);
- }
- for (i = 0; i < t1->children_num; i++) {
-#if defined(_MSC_VER)
-#pragma warning(disable : 4996)
-#endif
- sprintf (cur_name + L, "->params[%d]", i);
-#if defined(_MSC_VER)
-#pragma warning(default : 4996)
-#endif
- gen_uni_skip (t1->children[i], cur_name, vars, 0, fun);
- cur_name[L] = 0;
- }
- return 0;
- case NODE_TYPE_NAT_CONST:
- printf (" if (EVENP(%s) || ((long)%s) != %"_PRINTF_INT64_"d) { %s }\n", cur_name, cur_name, var_nat_const_to_int (t) * 2 + 1, fail);
- return 0;
- case NODE_TYPE_ARRAY:
- printf (" if (ODDP(%s) || %s->type->name != TL_TYPE_ARRAY) { %s }\n", cur_name, cur_name, fail);
- t2 = (void *)t;
-
-#if defined(_MSC_VER)
-#pragma warning(disable : 4996)
-#endif
- sprintf (cur_name + L, "->params[0]");
-#if defined(_MSC_VER)
-#pragma warning(default : 4996)
-#endif
- y = gen_uni_skip (t2->multiplicity, cur_name, vars, 0, fun);
- cur_name[L] = 0;
-
-#if defined(_MSC_VER)
-#pragma warning(disable : 4996)
-#endif
- sprintf (cur_name + L, "->params[1]");
-#if defined(_MSC_VER)
-#pragma warning(default : 4996)
-#endif
- y += gen_uni_skip (t2->args[0]->type, cur_name, vars, 0, fun);
- cur_name[L] = 0;
- return 0;
- case NODE_TYPE_VAR_TYPE:
- printf (" if (ODDP(%s)) { %s }\n", cur_name, fail);
- i = ((struct tl_tree_var_type *)t)->var_num;
- if (!vars[i]) {
- printf (" struct paramed_type *var%d = %s; assert (var%d);\n", i, cur_name, i);
- vars[i] = 1;
- } else if (vars[i] == 1) {
- printf (" if (compare_types (var%d, %s) < 0) { %s }\n", i, cur_name, fail);
- } else {
- assert (0);
- return -1;
- }
- return l;
- case NODE_TYPE_VAR_NUM:
- printf (" if (EVENP(%s)) { %s }\n", cur_name, fail);
- i = ((struct tl_tree_var_num *)t)->var_num;
- j = ((struct tl_tree_var_num *)t)->dif;
- if (!vars[i]) {
- printf (" struct paramed_type *var%d = ((void *)%s) + %d; assert (var%d);\n", i, cur_name, 2 * j, i);
- vars[i] = 2;
- } else if (vars[i] == 2) {
- printf (" if (var%d != ((void *)%s) + %d) { %s }\n", i, cur_name, 2 * j, fail);
- } else {
- assert (0);
- return -1;
- }
- return 0;
- default:
- assert (0);
- return -1;
- }
-}
-
-void print_offset (int len) {
- int i;
- for (i = 0; i < len; i++) { printf (" "); }
-}
-
-int gen_create (struct tl_tree *t, int *vars, int offset) {
- int x = TL_TREE_METHODS (t)->type (t);
- int i;
- struct tl_tree_type *t1;
- struct tl_tree_array *t2;
- switch (x) {
- case NODE_TYPE_TYPE:
- print_offset (offset);
- printf ("&(struct paramed_type){\n");
- print_offset (offset + 2);
- t1 = (void *)t;
- if (t1->self.flags & FLAG_BARE) {
- printf (".type = &(struct tl_type_descr) {.name = 0x%08x, .id = \"Bare_%s\", .params_num = %d, .params_types = %"_PRINTF_INT64_"d},\n", ~t1->type->name, t1->type->id, t1->type->arity, t1->type->params_types);
- } else {
- printf (".type = &(struct tl_type_descr) {.name = 0x%08x, .id = \"%s\", .params_num = %d, .params_types = %"_PRINTF_INT64_"d},\n", t1->type->name, t1->type->id, t1->type->arity, t1->type->params_types);
- }
- if (t1->children_num) {
- print_offset (offset + 2);
- printf (".params = (struct paramed_type *[]){\n");
- for (i = 0; i < t1->children_num; i++) {
- assert (gen_create (t1->children[i], vars, offset + 4) >= 0);
- printf (",\n");
- }
- print_offset (offset + 2);
- printf ("}\n");
- } else {
- print_offset (offset + 2);
- printf (".params = 0,\n");
- }
- print_offset (offset);
- printf ("}");
- return 0;
- case NODE_TYPE_NAT_CONST:
- print_offset (offset);
- printf ("INT2PTR (%d)", (int)var_nat_const_to_int (t));
- return 0;
- case NODE_TYPE_ARRAY:
- print_offset (offset);
- printf ("&(struct paramed_type){\n");
- print_offset (offset + 2);
- t2 = (void *)t;
- printf (".type = &(struct tl_type_descr) {.name = NAME_ARRAY, .id = \"array\", .params_num = 2, .params_types = 1},\n");
- print_offset (offset + 2);
- printf (".params = (struct paramed_type **){\n");
- gen_create (t2->multiplicity, vars, offset + 4);
- printf (",\n");
- gen_create (t2->args[0]->type, vars, offset + 4);
- printf (",\n");
- print_offset (offset + 2);
- printf ("}\n");
- print_offset (offset);
- printf ("}");
- return 0;
- case NODE_TYPE_VAR_TYPE:
- print_offset (offset);
- printf ("var%d", ((struct tl_tree_var_type *)t)->var_num);
- return 0;
- case NODE_TYPE_VAR_NUM:
- print_offset (offset);
- printf ("((void *)var%d) + %d", ((struct tl_tree_var_type *)t)->var_num, 2 * ((struct tl_tree_var_num *)t)->dif);
- return 0;
- default:
- assert (0);
- return -1;
- }
-}
-
-int gen_field_skip (struct arg *arg, int *vars, int num) {
- assert (arg);
- char *offset = " ";
- int o = 0;
- if (arg->exist_var_num >= 0) {
- printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
- offset = " ";
- o = 2;
- }
- if (arg->var_num >= 0) {
- assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
- int t = ((struct tl_tree_type *)arg->type)->type->name;
- if (t == NAME_VAR_TYPE) {
- fprintf (stderr, "Not supported yet\n");
- assert (0);
- } else {
- assert (t == NAME_VAR_NUM);
- if (vars[arg->var_num] == 0) {
- printf ("%sif (in_remaining () < 4) { return -1;}\n", offset);
- printf ("%sstruct paramed_type *var%d = INT2PTR (fetch_int ());\n", offset, arg->var_num);
- vars[arg->var_num] = 2;
- } else if (vars[arg->var_num] == 2) {
- printf ("%sif (in_remaining () < 4) { return -1;}\n", offset);
- printf ("%sif (vars%d != INT2PTR (fetch_int ())) { return -1; }\n", offset, arg->var_num);
- } else {
- assert (0);
- return -1;
- }
- }
- } else {
- int t = TL_TREE_METHODS (arg->type)->type (arg->type);
- if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (arg->type, vars, 2 + o) >= 0);
- printf (";\n");
- int bare = arg->flags & FLAG_BARE;
- if (!bare && t == NODE_TYPE_TYPE) {
- bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE;
- }
- if (!bare) {
- printf ("%sif (skip_type_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num);
- } else {
- printf ("%sif (skip_type_bare_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num);
- }
- } else {
- assert (t == NODE_TYPE_ARRAY);
- printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
- printf ("%s);\n", offset);
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
- printf (";\n");
- printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num);
- printf ("%s if (skip_type_%s (field%d) < 0) { return -1;}\n", offset, "any", num);
- printf ("%s}\n", offset);
- }
- }
- if (arg->exist_var_num >= 0) {
- printf (" }\n");
- }
- return 0;
-}
-
-int gen_field_fetch (struct arg *arg, int *vars, int num, int empty) {
- assert (arg);
- char *offset = " ";
- int o = 0;
- if (arg->exist_var_num >= 0) {
- printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
- offset = " ";
- o = 2;
- }
- if (!empty) {
- printf("%sif (multiline_output >= 2) { print_offset (); }\n", offset);
- }
- if (arg->id && strlen (arg->id) && !empty) {
- printf ("%sif (!disable_field_names) { eprintf (\" %s :\"); }\n", offset, arg->id);
- }
- if (arg->var_num >= 0) {
- assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
- int t = ((struct tl_tree_type *)arg->type)->type->name;
- if (t == NAME_VAR_TYPE) {
- fprintf (stderr, "Not supported yet\n");
- assert (0);
- } else {
- assert (t == NAME_VAR_NUM);
- if (vars[arg->var_num] == 0) {
- printf ("%sif (in_remaining () < 4) { return -1;}\n", offset);
- printf ("%seprintf (\" %%d\", prefetch_int ());\n", offset);
- printf ("%sstruct paramed_type *var%d = INT2PTR (fetch_int ());\n", offset, arg->var_num);
- vars[arg->var_num] = 2;
- } else if (vars[arg->var_num] == 2) {
- printf ("%sif (in_remaining () < 4) { return -1;}\n", offset);
- printf ("%seprintf (\" %%d\", prefetch_int ());\n", offset);
- printf ("%sif (vars%d != INT2PTR (fetch_int ())) { return -1; }\n", offset, arg->var_num);
- } else {
- assert (0);
- return -1;
- }
- }
- } else {
- int t = TL_TREE_METHODS (arg->type)->type (arg->type);
- if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (arg->type, vars, 2 + o) >= 0);
- printf (";\n");
- int bare = arg->flags & FLAG_BARE;
- if (!bare && t == NODE_TYPE_TYPE) {
- bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE;
- }
- if (!bare) {
- printf ("%sif (fetch_type_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num);
- } else {
- printf ("%sif (fetch_type_bare_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num);
- }
- } else {
- assert (t == NODE_TYPE_ARRAY);
- printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
- printf ("%s);\n", offset);
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
- printf (";\n");
- printf ("%seprintf (\" [\");\n", offset);
- printf ("%sif (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset);
- printf ("%sif (multiline_output >= 1) { multiline_offset += multiline_offset_size;}\n", offset);
- printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num);
- printf ("%s if (multiline_output >= 1) { print_offset (); }\n", offset);
- printf ("%s if (fetch_type_%s (field%d) < 0) { return -1;}\n", offset, "any", num);
- printf ("%s if (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset);
- printf ("%s}\n", offset);
- printf ("%sif (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}\n", offset);
- printf ("%seprintf (\" ]\");\n", offset);
- }
- }
- if (!empty) {
- printf("%sif (multiline_output >= 2) { eprintf (\"\\n\"); }\n", offset);
- }
- if (arg->exist_var_num >= 0) {
- printf (" }\n");
- }
- return 0;
-}
-
-int gen_field_store (struct arg *arg, int *vars, int num, int from_func, int empty) {
- assert (arg);
- char *offset = " ";
- int o = 0;
- if (arg->exist_var_num >= 0) {
- printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
- offset = " ";
- o = 2;
- }
- char *fail = from_func ? "0" : "-1";
- char *expect = from_func ? "expect_token_ptr" : "expect_token";
- if (arg->id && strlen (arg->id) > 0 && !empty) {
- printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id);
- printf ("%s local_next_token ();\n", offset);
- printf ("%s %s (\":\", 1);\n", offset, expect);
- printf ("%s}\n", offset);
- }
- if (arg->var_num >= 0) {
- printf ("%sif (cur_token_len < 0) { return %s; }\n", offset, fail);
- assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
- int t = ((struct tl_tree_type *)arg->type)->type->name;
- if (t == NAME_VAR_TYPE) {
- fprintf (stderr, "Not supported yet\n");
- assert (0);
- } else {
- assert (t == NAME_VAR_NUM);
- if (vars[arg->var_num] == 0) {
- printf ("%sif (!is_int ()) { return %s;}\n", offset, fail);
- printf ("%sstruct paramed_type *var%d = INT2PTR (get_int ());\n", offset, arg->var_num);
- printf ("%sout_int (get_int ());\n", offset);
- printf ("%sassert (var%d);\n", offset, arg->var_num);
- printf ("%slocal_next_token ();\n", offset);
- vars[arg->var_num] = 2;
- } else if (vars[arg->var_num] == 2) {
- printf ("%sif (!is_int ()) { return %s;}\n", offset, fail);
- printf ("%sif (vars%d != INT2PTR (get_int ())) { return %s; }\n", offset, arg->var_num, fail);
- printf ("%sout_int (get_int ());\n", offset);
- printf ("%slocal_next_token ();\n", offset);
- } else {
- assert (0);
- return -1;
- }
- }
- } else {
- int t = TL_TREE_METHODS (arg->type)->type (arg->type);
- if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (arg->type, vars, 2 + o) >= 0);
- printf (";\n");
- int bare = arg->flags & FLAG_BARE;
- if (!bare && t == NODE_TYPE_TYPE) {
- bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE;
- }
- if (!bare) {
- printf ("%sif (store_type_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail);
- } else {
- printf ("%sif (store_type_bare_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail);
- }
- } else {
- printf ("%s%s (\"[\", 1);\n", offset, expect);
-
- assert (t == NODE_TYPE_ARRAY);
- printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
- printf ("%s);\n", offset);
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
- printf (";\n");
- printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num);
- printf ("%s if (store_type_%s (field%d) < 0) { return %s;}\n", offset, "any", num, fail);
- printf ("%s}\n", offset);
-
- printf ("%s%s (\"]\", 1);\n", offset, expect);
- }
- }
- if (arg->exist_var_num >= 0) {
- printf (" }\n");
- }
- return 0;
-}
-
-int gen_field_autocomplete (struct arg *arg, int *vars, int num, int from_func, int empty) {
- assert (arg);
- char *offset = " ";
- int o = 0;
- if (arg->exist_var_num >= 0) {
- printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
- offset = " ";
- o = 2;
- }
- char *fail = from_func ? "0" : "-1";
- char *expect = from_func ? "expect_token_ptr_autocomplete" : "expect_token_autocomplete";
- if (arg->id && strlen (arg->id) > 0 && !empty) {
- printf ("%sif (cur_token_len == -3 && cur_token_real_len <= %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_real_len)) {\n", offset, (int)(strlen (arg->id)), arg->id);
- printf ("%s set_autocomplete_string (\"%s\");\n", offset, arg->id);
- printf ("%s return %s;\n", offset, fail);
- printf ("%s}\n", offset);
-
- printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id);
- printf ("%s local_next_token ();\n", offset);
- printf ("%s %s (\":\", 1);\n", offset, expect);
- printf ("%s}\n", offset);
- }
- if (arg->var_num >= 0) {
- printf ("%sif (cur_token_len < 0) { return %s; }\n", offset, fail);
- assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
- int t = ((struct tl_tree_type *)arg->type)->type->name;
- if (t == NAME_VAR_TYPE) {
- fprintf (stderr, "Not supported yet\n");
- assert (0);
- } else {
- assert (t == NAME_VAR_NUM);
- if (vars[arg->var_num] == 0) {
- printf ("%sif (!is_int ()) { return %s;}\n", offset, fail);
- printf ("%sstruct paramed_type *var%d = INT2PTR (get_int ());\n", offset, arg->var_num);
- printf ("%sassert (var%d);\n", offset, arg->var_num);
- printf ("%slocal_next_token ();\n", offset);
- vars[arg->var_num] = 2;
- } else if (vars[arg->var_num] == 2) {
- printf ("%sif (!is_int ()) { return %s;}\n", offset, fail);
- printf ("%sif (vars%d != INT2PTR (get_int ())) { return %s; }\n", offset, arg->var_num, fail);
- printf ("%slocal_next_token ();\n", offset);
- } else {
- assert (0);
- return -1;
- }
- }
- } else {
- int t = TL_TREE_METHODS (arg->type)->type (arg->type);
- if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (arg->type, vars, 2 + o) >= 0);
- printf (";\n");
- int bare = arg->flags & FLAG_BARE;
- if (!bare && t == NODE_TYPE_TYPE) {
- bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE;
- }
- if (!bare) {
- printf ("%sif (autocomplete_type_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail);
- } else {
- printf ("%sif (autocomplete_type_bare_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail);
- }
- } else {
- printf ("%s%s (\"[\", 1);\n", offset, expect);
-
- assert (t == NODE_TYPE_ARRAY);
- printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
- printf ("%s);\n", offset);
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
- printf (";\n");
- printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num);
- printf ("%s if (autocomplete_type_%s (field%d) < 0) { return %s;}\n", offset, "any", num, fail);
- printf ("%s}\n", offset);
-
- printf ("%s%s (\"]\", 1);\n", offset, expect);
- }
- }
- if (arg->exist_var_num >= 0) {
- printf (" }\n");
- }
- return 0;
-}
-
-int gen_field_fetch_ds (struct arg *arg, int *vars, int num, int empty) {
- assert (arg);
- char *offset = " ";
- int o = 0;
- if (arg->exist_var_num >= 0) {
- printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
- offset = " ";
- o = 2;
- }
- if (arg->var_num >= 0) {
- assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
- int t = ((struct tl_tree_type *)arg->type)->type->name;
- if (t == NAME_VAR_TYPE) {
- fprintf (stderr, "Not supported yet\n");
- assert (0);
- } else {
- assert (t == NAME_VAR_NUM);
- printf ("%sassert (in_remaining () >= 4);\n", offset);
- if (arg->id && strlen (arg->id)) {
- printf ("%sresult->%s = talloc (4);", offset, arg->id);
- printf ("%s*result->%s = prefetch_int ();", offset, arg->id);
- } else {
- printf ("%sresult->f%d = talloc (4);", offset, num - 1);
- printf ("%s*result->f%d = prefetch_int ();", offset, num - 1);
- }
- if (vars[arg->var_num] == 0) {
- printf ("%sstruct paramed_type *var%d = INT2PTR (fetch_int ());\n", offset, arg->var_num);
- vars[arg->var_num] = 2;
- } else if (vars[arg->var_num] == 2) {
- printf ("%sassert (vars%d == INT2PTR (fetch_int ()));\n", offset, arg->var_num);
- } else {
- assert (0);
- return -1;
- }
- }
- } else {
- int t = TL_TREE_METHODS (arg->type)->type (arg->type);
- if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (arg->type, vars, 2 + o) >= 0);
- printf (";\n");
- int bare = arg->flags & FLAG_BARE;
- if (!bare && t == NODE_TYPE_TYPE) {
- bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE;
- }
- if (arg->id && strlen (arg->id)) {
- printf ("%sresult->%s = ", offset, arg->id);
- } else {
- printf ("%sresult->f%d = ", offset, num - 1);
- }
- if (t == NODE_TYPE_TYPE && !strcmp (((struct tl_tree_type *)arg->type)->type->id, "Vector")) {
- printf ("(void *)");
- }
- if (!bare) {
- printf ("fetch_ds_type_%s (field%d);\n", t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num);
- } else {
- printf ("fetch_ds_type_bare_%s (field%d);\n", t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num);
- }
- } else {
- assert (t == NODE_TYPE_ARRAY);
- printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
- printf ("%s);\n", offset);
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
- printf (";\n");
- if (arg->id && strlen (arg->id)) {
- printf ("%sresult->%s = ", offset, arg->id);
- } else {
- printf ("%sresult->f%d = ", offset, num - 1);
- }
- printf ("talloc0 (multiplicity%d * sizeof (void *));\n", num);
- printf ("%s{\n", offset);
- printf ("%s int i = 0;\n", offset);
- printf ("%s while (i < multiplicity%d) {\n", offset, num);
- if (arg->id && strlen (arg->id)) {
- printf ("%s result->%s[i ++] =", offset, arg->id);
- } else {
- printf ("%s result->f%d[i ++] = ", offset, num - 1);
- }
- printf ("fetch_ds_type_%s (field%d);\n", "any", num);
- printf ("%s }\n", offset);
- printf ("%s}\n", offset);
- }
- }
- if (arg->exist_var_num >= 0) {
- printf (" }\n");
- }
- return 0;
-}
-
-int gen_field_free_ds (struct arg *arg, int *vars, int num, int empty) {
- assert (arg);
- char *offset = " ";
- int o = 0;
- if (arg->exist_var_num >= 0) {
- printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
- offset = " ";
- o = 2;
- }
- if (arg->var_num >= 0) {
- assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
- int t = ((struct tl_tree_type *)arg->type)->type->name;
- if (t == NAME_VAR_TYPE) {
- fprintf (stderr, "Not supported yet\n");
- assert (0);
- } else {
- assert (t == NAME_VAR_NUM);
- if (arg->id && strlen (arg->id)) {
- if (vars[arg->var_num] == 0) {
- printf ("%sstruct paramed_type *var%d = INT2PTR (*D->%s);\n", offset, arg->var_num, arg->id);
- vars[arg->var_num] = 2;
- } else if (vars[arg->var_num] == 2) {
- printf ("%sassert (vars%d == INT2PTR (*D->%s));\n", offset, arg->var_num, arg->id);
- }
- printf ("%stfree (D->%s, sizeof (*D->%s));\n", offset, arg->id, arg->id);
- } else {
- if (vars[arg->var_num] == 0) {
- printf ("%sstruct paramed_type *var%d = INT2PTR (*D->f%d);\n", offset, arg->var_num, num - 1);
- vars[arg->var_num] = 2;
- } else if (vars[arg->var_num] == 2) {
- printf ("%sassert (vars%d == *D->f%d);\n", offset, arg->var_num, num - 1);
- }
- printf ("%stfree (D->f%d, sizeof (*D->f%d));\n", offset, num - 1, num - 1);
- }
- }
- } else {
- int t = TL_TREE_METHODS (arg->type)->type (arg->type);
- if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (arg->type, vars, 2 + o) >= 0);
- printf (";\n");
- int any = (t == NODE_TYPE_VAR_TYPE) || ((struct tl_tree_type *)arg->type)->type->name == NAME_VECTOR;
- if (arg->id && strlen (arg->id)) {
- printf ("%sfree_ds_type_%s (D->%s, field%d);\n", offset, any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, arg->id, num);
- } else {
- printf ("%sfree_ds_type_%s (D->f%d, field%d);\n", offset, any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num - 1, num);
- }
- } else {
- assert (t == NODE_TYPE_ARRAY);
- printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
- printf ("%s);\n", offset);
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
- printf (";\n");
- printf ("%s{\n", offset);
- printf ("%s int i = 0;\n", offset);
- printf ("%s while (i < multiplicity%d) {\n", offset, num);
- if (arg->id && strlen (arg->id)) {
- printf ("%s free_ds_type_%s (D->%s[i ++], field%d);\n", offset, "any", arg->id, num);
- } else {
- printf ("%s free_ds_type_%s (D->f%d[i ++], field%d);\n", offset, "any", num - 1, num);
- }
- printf ("%s }\n", offset);
- printf ("%s}\n", offset);
- if (arg->id && strlen (arg->id)) {
- printf ("%stfree (D->%s, sizeof (void *) * multiplicity%d);\n", offset, arg->id, num);
- } else {
- printf ("%stfree (D->f%d, sizeof (void *) * multiplicity%d);\n", offset, num - 1, num);
- }
- }
- }
- if (arg->exist_var_num >= 0) {
- printf (" }\n");
- }
- return 0;
-}
-
-int gen_field_store_ds (struct arg *arg, int *vars, int num, int empty) {
- assert (arg);
- char *offset = " ";
- int o = 0;
- if (arg->exist_var_num >= 0) {
- printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
- offset = " ";
- o = 2;
- }
- if (arg->var_num >= 0) {
- assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
- int t = ((struct tl_tree_type *)arg->type)->type->name;
- if (t == NAME_VAR_TYPE) {
- fprintf (stderr, "Not supported yet\n");
- assert (0);
- } else {
- assert (t == NAME_VAR_NUM);
- if (arg->id && strlen (arg->id)) {
- if (vars[arg->var_num] == 0) {
- printf ("%sstruct paramed_type *var%d = INT2PTR (*D->%s);\n", offset, arg->var_num, arg->id);
- vars[arg->var_num] = 2;
- } else if (vars[arg->var_num] == 2) {
- printf ("%sassert (vars%d == INT2PTR (*D->%s));\n", offset, arg->var_num, arg->id);
- }
- printf ("%sout_int (PTR2INT (var%d));\n", offset, arg->var_num);
- } else {
- if (vars[arg->var_num] == 0) {
- printf ("%sstruct paramed_type *var%d = INT2PTR (*D->f%d);\n", offset, arg->var_num, num - 1);
- vars[arg->var_num] = 2;
- } else if (vars[arg->var_num] == 2) {
- printf ("%sassert (vars%d == *D->f%d);\n", offset, arg->var_num, num - 1);
- }
- printf ("%sout_int (PTR2INT (var%d));\n", offset, arg->var_num);
- }
- }
- } else {
- int t = TL_TREE_METHODS (arg->type)->type (arg->type);
- if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
- int bare = arg->flags & FLAG_BARE;
- if (!bare && t == NODE_TYPE_TYPE) {
- bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE;
- }
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (arg->type, vars, 2 + o) >= 0);
- printf (";\n");
- int any = (t == NODE_TYPE_VAR_TYPE);
- int vec = ((struct tl_tree_type *)arg->type)->type->name == NAME_VECTOR;
- if (arg->id && strlen (arg->id)) {
- printf ("%sstore_ds_type_%s%s (%sD->%s, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", arg->id, num);
- } else {
- printf ("%sstore_ds_type_%s%s (%sD->f%d, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", num - 1, num);
- }
- } else {
- assert (t == NODE_TYPE_ARRAY);
- printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
- printf ("%s);\n", offset);
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
- printf (";\n");
- printf ("%s{\n", offset);
- printf ("%s int i = 0;\n", offset);
- printf ("%s while (i < multiplicity%d) {\n", offset, num);
- if (arg->id && strlen (arg->id)) {
- printf ("%s store_ds_type_%s (D->%s[i ++], field%d);\n", offset, "any", arg->id, num);
- } else {
- printf ("%s store_ds_type_%s (D->f%d[i ++], field%d);\n", offset, "any", num - 1, num);
- }
- printf ("%s }\n", offset);
- printf ("%s}\n", offset);
- }
- }
- if (arg->exist_var_num >= 0) {
- printf (" }\n");
- }
- return 0;
-}
-
-int gen_field_print_ds (struct arg *arg, int *vars, int num, int empty) {
- assert (arg);
- char *offset = " ";
- int o = 0;
- if (arg->exist_var_num >= 0) {
- printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
- offset = " ";
- o = 2;
- }
- if (!empty) {
- printf("%sif (multiline_output >= 2) { print_offset (); }\n", offset);
- }
- if (arg->id && strlen (arg->id) && !empty) {
- printf ("%sif (!disable_field_names) { eprintf (\" %s :\"); }\n", offset, arg->id);
- }
- if (arg->var_num >= 0) {
- assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
- int t = ((struct tl_tree_type *)arg->type)->type->name;
- if (t == NAME_VAR_TYPE) {
- fprintf (stderr, "Not supported yet\n");
- assert (0);
- } else {
- if (arg->id && strlen (arg->id)) {
- if (vars[arg->var_num] == 0) {
- printf ("%sstruct paramed_type *var%d = INT2PTR (*DS->%s);\n", offset, arg->var_num, arg->id);
- vars[arg->var_num] = 2;
- } else if (vars[arg->var_num] == 2) {
- printf ("%sassert (vars%d == INT2PTR (*DS->%s));\n", offset, arg->var_num, arg->id);
- }
- } else {
- if (vars[arg->var_num] == 0) {
- printf ("%sstruct paramed_type *var%d = INT2PTR (*DS->f%d);\n", offset, arg->var_num, num - 1);
- vars[arg->var_num] = 2;
- } else if (vars[arg->var_num] == 2) {
- printf ("%sassert (vars%d == *DS->f%d);\n", offset, arg->var_num, num - 1);
- }
- }
- printf ("%seprintf (\" %%d\", (int)PTR2INT (var%d));\n", offset, arg->var_num);
- }
- } else {
- int t = TL_TREE_METHODS (arg->type)->type (arg->type);
- if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (arg->type, vars, 2 + o) >= 0);
- printf (";\n");
- int bare = arg->flags & FLAG_BARE;
- if (!bare && t == NODE_TYPE_TYPE) {
- bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE;
- }
- int any = (t == NODE_TYPE_VAR_TYPE);
- int vec = ((struct tl_tree_type *)arg->type)->type->name == NAME_VECTOR;
- if (arg->id && strlen (arg->id)) {
- printf ("%sprint_ds_type_%s%s (%sDS->%s, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", arg->id, num);
- } else {
- printf ("%sprint_ds_type_%s%s (%sDS->f%d, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", num - 1, num);
- }
- } else {
- assert (t == NODE_TYPE_ARRAY);
- printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
- printf ("%s);\n", offset);
- printf ("%sstruct paramed_type *field%d = \n", offset, num);
- assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
- printf (";\n");
- printf ("%seprintf (\" [\");\n", offset);
- printf ("%sif (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset);
- printf ("%sif (multiline_output >= 1) { multiline_offset += multiline_offset_size;}\n", offset);
- printf ("%s{\n", offset);
- printf ("%s int i = 0;\n", offset);
- printf ("%s while (i < multiplicity%d) {\n", offset, num);
- printf ("%s if (multiline_output >= 1) { print_offset (); }\n", offset);
- if (arg->id && strlen (arg->id)) {
- printf ("%s print_ds_type_%s (DS->%s[i ++], field%d);\n", offset, "any", arg->id, num);
- } else {
- printf ("%s print_ds_type_%s (DS->f%d[i ++], field%d);\n", offset, "any", num - 1, num);
- }
- printf ("%s if (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset);
- printf ("%s }\n", offset);
- printf ("%s}\n", offset);
- printf ("%sif (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}\n", offset);
- printf ("%seprintf (\" ]\");\n", offset);
- }
- }
- if (!empty) {
- printf("%sif (multiline_output >= 2) { eprintf (\"\\n\"); }\n", offset);
- }
- if (arg->exist_var_num >= 0) {
- printf (" }\n");
- }
- return 0;
-}
-
-int gen_field_autocomplete_excl (struct arg *arg, int *vars, int num, int from_func) {
- assert (arg);
- assert (arg->var_num < 0);
- char *offset = " ";
- if (arg->exist_var_num >= 0) {
- printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
- offset = " ";
- }
- char *fail = from_func ? "0" : "-1";
- char *expect = from_func ? "expect_token_ptr_autocomplete" : "expect_token_autocomplete";
- if (arg->id && strlen (arg->id) > 0) {
- printf ("%sif (cur_token_len == -3 && cur_token_real_len <= %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_real_len)) {\n", offset, (int)(strlen (arg->id)), arg->id);
- printf ("%s set_autocomplete_string (\"%s\");\n", offset, arg->id);
- printf ("%s return %s;\n", offset, fail);
- printf ("%s}\n", offset);
-
- printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id);
- printf ("%s local_next_token ();\n", offset);
- printf ("%s %s (\":\", 1);\n", offset, expect);
- printf ("%s}\n", offset);
- }
- int t = TL_TREE_METHODS (arg->type)->type (arg->type);
- assert (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE);
- printf ("%sstruct paramed_type *field%d = autocomplete_function_any ();\n", offset, num);
- printf ("%sif (!field%d) { return 0; }\n", offset, num);
- printf ("%sadd_var_to_be_freed (field%d);\n", offset, num);
- static char s[20];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- sprintf_s (s, 20, "field%d", num);
-#else
- sprintf (s, "field%d", num);
-#endif
- gen_uni_skip (arg->type, s, vars, 1, 1);
- if (arg->exist_var_num >= 0) {
- printf (" }\n");
- }
- return 0;
-}
-
-int gen_field_store_excl (struct arg *arg, int *vars, int num, int from_func) {
- assert (arg);
- assert (arg->var_num < 0);
- char *offset = " ";
- if (arg->exist_var_num >= 0) {
- printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
- offset = " ";
- }
- char *expect = from_func ? "expect_token_ptr" : "expect_token";
- if (arg->id && strlen (arg->id) > 0) {
- printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id);
- printf ("%s local_next_token ();\n", offset);
- printf ("%s %s (\":\", 1);\n", offset, expect);
- printf ("%s}\n", offset);
- }
- int t = TL_TREE_METHODS (arg->type)->type (arg->type);
- assert (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE);
- printf ("%sstruct paramed_type *field%d = store_function_any ();\n", offset, num);
- printf ("%sif (!field%d) { return 0; }\n", offset, num);
- static char s[20];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- sprintf_s (s, 20, "field%d", num);
-#else
- sprintf (s, "field%d", num);
-#endif
- gen_uni_skip (arg->type, s, vars, 1, 1);
- if (arg->exist_var_num >= 0) {
- printf (" }\n");
- }
- return 0;
-}
-
-void gen_constructor_skip (struct tl_combinator *c) {
- printf ("int skip_constructor_%s (struct paramed_type *T) {\n", c->print_id);
- int i;
- for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
- printf (" return -1;\n");
- printf ("}\n");
- return;
- }
- static char s[10000];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- sprintf_s (s, 10000, "T");
-#else
- sprintf (s, "T");
-#endif
-
- int *vars = malloc0 (c->var_num * 4);;
- gen_uni_skip (c->result, s, vars, 1, 0);
-
- if (c->name == NAME_INT) {
- printf (" if (in_remaining () < 4) { return -1;}\n");
- printf (" fetch_int ();\n");
- printf (" return 0;\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_LONG) {
- printf (" if (in_remaining () < 8) { return -1;}\n");
- printf (" fetch_long ();\n");
- printf (" return 0;\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_STRING) {
- printf (" int l = prefetch_strlen ();\n");
- printf (" if (l < 0) { return -1;}\n");
- printf (" fetch_str (l);\n");
- printf (" return 0;\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_DOUBLE) {
- printf (" if (in_remaining () < 8) { return -1;}\n");
- printf (" fetch_double ();\n");
- printf (" return 0;\n");
- printf ("}\n");
- return;
- }
-
- for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
- assert (gen_field_skip (c->args[i], vars, i + 1) >= 0);
- }
- free (vars);
- printf (" return 0;\n");
- printf ("}\n");
-}
-
-void gen_constructor_fetch (struct tl_combinator *c) {
- printf ("int fetch_constructor_%s (struct paramed_type *T) {\n", c->print_id);
- int i;
- for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
- printf (" return -1;\n");
- printf ("}\n");
- return;
- }
- static char s[10000];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- sprintf_s (s, 10000, "T");
-#else
- sprintf (s, "T");
-#endif
-
- int *vars = malloc0 (c->var_num * 4);;
- gen_uni_skip (c->result, s, vars, 1, 0);
-
- if (c->name == NAME_INT) {
- printf (" if (in_remaining () < 4) { return -1;}\n");
- printf (" eprintf (\" %%d\", fetch_int ());\n");
- printf (" return 0;\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_LONG) {
- printf (" if (in_remaining () < 8) { return -1;}\n");
- printf (" eprintf (\" %%"_PRINTF_INT64_"d\", fetch_long ());\n");
- printf (" return 0;\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_STRING) {
- printf (" static char buf[1 << 22];\n");
- printf (" int l = prefetch_strlen ();\n");
- printf (" if (l < 0 || (l >= (1 << 22) - 2)) { return -1; }\n");
- printf (" memcpy (buf, fetch_str (l), l);\n");
- printf (" buf[l] = 0;\n");
- printf (" print_escaped_string (buf, l);\n");
- printf (" return 0;\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_DOUBLE) {
- printf (" if (in_remaining () < 8) { return -1;}\n");
- printf (" eprintf (\" %%lf\", fetch_double ());\n");
- printf (" return 0;\n");
- printf ("}\n");
- return;
- }
-
- assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE);
- int empty = is_empty (((struct tl_tree_type *)c->result)->type);
- if (!empty) {
- printf (" eprintf (\" %s\");\n", c->id);
- printf (" if (multiline_output >= 2) { eprintf (\"\\n\"); }\n");
- }
-
-
- for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
- assert (gen_field_fetch (c->args[i], vars, i + 1, empty) >= 0);
- }
- free (vars);
- printf (" return 0;\n");
- printf ("}\n");
-}
-
-void gen_constructor_store (struct tl_combinator *c) {
- printf ("int store_constructor_%s (struct paramed_type *T) {\n", c->print_id);
- int i;
- for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
- printf (" return -1;\n");
- printf ("}\n");
- return;
- }
- static char s[10000];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- sprintf_s (s, 10000, "T");
-#else
- sprintf (s, "T");
-#endif
-
- int *vars = malloc0 (c->var_num * 4);;
- assert (c->var_num <= 10);
- gen_uni_skip (c->result, s, vars, 1, 0);
-
- if (c->name == NAME_INT) {
- printf (" if (is_int ()) {\n");
- printf (" out_int (get_int ());\n");
- printf (" local_next_token ();\n");
- printf (" return 0;\n");
- printf (" } else {\n");
- printf (" return -1;\n");
- printf (" }\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_LONG) {
- printf (" if (is_int ()) {\n");
- printf (" out_long (get_int ());\n");
- printf (" local_next_token ();\n");
- printf (" return 0;\n");
- printf (" } else {\n");
- printf (" return -1;\n");
- printf (" }\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_STRING) {
- printf (" if (cur_token_len >= 0) {\n");
- printf (" out_cstring (cur_token, cur_token_len);\n");
- printf (" local_next_token ();\n");
- printf (" return 0;\n");
- printf (" } else {\n");
- printf (" return -1;\n");
- printf (" }\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_DOUBLE) {
- printf (" if (is_double ()) {\n");
- printf (" out_double (get_double());\n");
- printf (" local_next_token ();\n");
- printf (" return 0;\n");
- printf (" } else {\n");
- printf (" return -1;\n");
- printf (" }\n");
- printf ("}\n");
- return;
- }
-
- int empty = is_empty (((struct tl_tree_type *)c->result)->type);
- for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
- assert (gen_field_store (c->args[i], vars, i + 1, 0, empty) >= 0);
- }
-
- free (vars);
- printf (" return 0;\n");
- printf ("}\n");
-}
-
-void gen_constructor_autocomplete (struct tl_combinator *c) {
- printf ("int autocomplete_constructor_%s (struct paramed_type *T) {\n", c->print_id);
- int i;
- for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
- printf (" return -1;\n");
- printf ("}\n");
- return;
- }
- static char s[10000];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- sprintf_s (s, 10000, "T");
-#else
- sprintf (s, "T");
-#endif
-
- int *vars = malloc0 (c->var_num * 4);;
- assert (c->var_num <= 10);
- gen_uni_skip (c->result, s, vars, 1, 0);
-
- if (c->name == NAME_INT) {
- printf (" if (is_int ()) {\n");
- printf (" local_next_token ();\n");
- printf (" return 0;\n");
- printf (" } else {\n");
- printf (" return -1;\n");
- printf (" }\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_LONG) {
- printf (" if (is_int ()) {\n");
- printf (" local_next_token ();\n");
- printf (" return 0;\n");
- printf (" } else {\n");
- printf (" return -1;\n");
- printf (" }\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_STRING) {
- printf (" if (cur_token_len >= 0) {\n");
- printf (" local_next_token ();\n");
- printf (" return 0;\n");
- printf (" } else {\n");
- printf (" return -1;\n");
- printf (" }\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_DOUBLE) {
- printf (" if (is_double ()) {\n");
- printf (" local_next_token ();\n");
- printf (" return 0;\n");
- printf (" } else {\n");
- printf (" return -1;\n");
- printf (" }\n");
- printf ("}\n");
- return;
- }
-
- int empty = is_empty (((struct tl_tree_type *)c->result)->type);
- for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
- assert (gen_field_autocomplete (c->args[i], vars, i + 1, 0, empty) >= 0);
- }
-
- free (vars);
- printf (" return 0;\n");
- printf ("}\n");
-}
-
-void gen_constructor_fetch_ds (struct tl_combinator *c) {
- print_c_type_name (c->result, "", 0);
- printf ("fetch_ds_constructor_%s (struct paramed_type *T) {\n", c->print_id);
- int i;
- for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
- printf (" assert (0);\n");
- printf ("}\n");
- return;
- }
- static char s[10000];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- sprintf_s (s, 10000, "T");
-#else
- sprintf (s, "T");
-#endif
-
- int *vars = malloc0 (c->var_num * 4);;
- gen_uni_skip (c->result, s, vars, 1, 1);
-
- printf (" ");
- print_c_type_name (c->result, " ", 0);
- printf (" result = talloc0 (sizeof (*result));\n");
-
- struct tl_type *T = ((struct tl_tree_type *)c->result)->type;
- if (T->constructors_num > 1) {
- printf (" result->magic = 0x%08x;\n", c->name);
- }
-
- if (c->name == NAME_INT) {
- printf (" assert (in_remaining () >= 4);\n");
- printf (" *result = fetch_int ();\n");
- printf (" return result;\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_LONG) {
- printf (" assert (in_remaining () >= 8);\n");
- printf (" *result = fetch_long ();\n");
- printf (" return result;\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_STRING || c->name == NAME_BYTES) {
- printf (" assert (in_remaining () >= 4);\n");
- printf (" int l = prefetch_strlen ();\n");
- printf (" assert (l >= 0);\n");
- printf (" result->len = l;\n");
- printf (" result->data = talloc (l + 1);\n");
- printf (" result->data[l] = 0;\n");
- printf (" memcpy (result->data, fetch_str (l), l);\n");
- printf (" return result;\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_DOUBLE) {
- printf (" assert (in_remaining () >= 8);\n");
- printf (" *result = fetch_double ();\n");
- printf (" return result;\n");
- printf ("}\n");
- return;
- }
-
- assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE);
- int empty = is_empty (((struct tl_tree_type *)c->result)->type);
-
- for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
- assert (gen_field_fetch_ds (c->args[i], vars, i + 1, empty) >= 0);
- }
- free (vars);
- printf (" return result;\n");
- printf ("}\n");
-}
-
-void gen_constructor_free_ds (struct tl_combinator *c) {
- printf ("void free_ds_constructor_%s (", c->print_id);
- print_c_type_name (c->result, "", 0);
- printf ("D, struct paramed_type *T) {\n");
- int i;
- for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
- printf (" assert (0);\n");
- printf ("}\n");
- return;
- }
-
- static char s[10000];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- sprintf_s (s, 10000, "T");
-#else
- sprintf (s, "T");
-#endif
-
- int *vars = malloc0 (c->var_num * 4);;
- gen_uni_skip (c->result, s, vars, 1, -1);
-
- //printf (" ");
- //print_c_type_name (c->result, " ", 0);
- //printf (" result = talloc0 (sizeof (*result));\n");
-
- //struct tl_type *T = ((struct tl_tree_type *)c->result)->type;
-
- if (c->name == NAME_INT) {
- printf (" tfree (D, sizeof (*D));\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_LONG) {
- printf (" tfree (D, sizeof (*D));\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_STRING || c->name == NAME_BYTES) {
- printf (" tfree (D->data, D->len + 1);\n");
- printf (" tfree (D, sizeof (*D));\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_DOUBLE) {
- printf (" tfree (D, sizeof (*D));\n");
- printf ("}\n");
- return;
- }
-
- assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE);
- int empty = is_empty (((struct tl_tree_type *)c->result)->type);
-
- for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
- assert (gen_field_free_ds (c->args[i], vars, i + 1, empty) >= 0);
- }
- free (vars);
- printf ("}\n");
-}
-
-void gen_constructor_store_ds (struct tl_combinator *c) {
- printf ("void store_ds_constructor_%s (", c->print_id);
- print_c_type_name (c->result, "", 0);
- printf ("D, struct paramed_type *T) {\n");
- int i;
- for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
- printf (" assert (0);\n");
- printf ("}\n");
- return;
- }
-
- static char s[10000];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- sprintf_s (s, 10000, "T");
-#else
- sprintf (s, "T");
-#endif
-
- int *vars = malloc0 (c->var_num * 4);;
- gen_uni_skip (c->result, s, vars, 1, -1);
-
- //printf (" ");
- //print_c_type_name (c->result, " ", 0);
- //printf (" result = talloc0 (sizeof (*result));\n");
-
- //struct tl_type *T = ((struct tl_tree_type *)c->result)->type;
-
- if (c->name == NAME_INT) {
- printf (" out_int (*D);\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_LONG) {
- printf (" out_long (*D);\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_STRING || c->name == NAME_BYTES) {
- printf (" out_cstring (D->data, D->len);\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_DOUBLE) {
- printf (" out_double (*D);\n");
- printf ("}\n");
- return;
- }
-
- assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE);
- int empty = is_empty (((struct tl_tree_type *)c->result)->type);
-
- for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
- assert (gen_field_store_ds (c->args[i], vars, i + 1, empty) >= 0);
- }
- free (vars);
- printf ("}\n");
-}
-
-void gen_constructor_print_ds (struct tl_combinator *c) {
- printf ("int print_ds_constructor_%s (", c->print_id);
- print_c_type_name (c->result, "", 0);
- printf ("DS, struct paramed_type *T) {\n");
- int i;
- for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
- printf (" return -1;\n");
- printf ("}\n");
- return;
- }
- static char s[10000];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- sprintf_s (s, 10000, "T");
-#else
- sprintf (s, "T");
-#endif
-
- int *vars = malloc0 (c->var_num * 4);;
- gen_uni_skip (c->result, s, vars, 1, 0);
-
- if (c->name == NAME_INT) {
- printf (" eprintf (\" %%d\", *DS);\n");
- printf (" return 0;\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_LONG) {
- printf (" eprintf (\" %%"_PRINTF_INT64_"d\", *DS);\n");
- printf (" return 0;\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_STRING || c->name == NAME_BYTES) {
- printf (" print_escaped_string (DS->data, DS->len);\n");
- printf (" return 0;\n");
- printf ("}\n");
- return;
- } else if (c->name == NAME_DOUBLE) {
- printf (" eprintf (\" %%lf\", *DS);\n");
- printf (" return 0;\n");
- printf ("}\n");
- return;
- }
-
- assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE);
- int empty = is_empty (((struct tl_tree_type *)c->result)->type);
- if (!empty) {
- printf (" eprintf (\" %s\");\n", c->id);
- printf (" if (multiline_output >= 2) { eprintf (\"\\n\"); }\n");
- }
-
-
- for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
- assert (gen_field_print_ds (c->args[i], vars, i + 1, empty) >= 0);
- }
- free (vars);
- printf (" return 0;\n");
- printf ("}\n");
-}
-
-void gen_type_skip (struct tl_type *t) {
- printf ("int skip_type_%s (struct paramed_type *T) {\n", t->print_id);
- printf (" if (in_remaining () < 4) { return -1;}\n");
- printf (" int magic = fetch_int ();\n");
- printf (" switch (magic) {\n");
- int i;
- for (i = 0; i < t->constructors_num; i++) {
- printf (" case 0x%08x: return skip_constructor_%s (T);\n", t->constructors[i]->name, t->constructors[i]->print_id);
- }
- printf (" default: return -1;\n");
- printf (" }\n");
- printf ("}\n");
- printf ("int skip_type_bare_%s (struct paramed_type *T) {\n", t->print_id);
- if (t->constructors_num > 1) {
- printf (" int *save_in_ptr = in_ptr;\n");
- for (i = 0; i < t->constructors_num; i++) {
- printf (" if (skip_constructor_%s (T) >= 0) { return 0; }\n", t->constructors[i]->print_id);
- printf (" in_ptr = save_in_ptr;\n");
- }
- } else {
- for (i = 0; i < t->constructors_num; i++) {
- printf (" if (skip_constructor_%s (T) >= 0) { return 0; }\n", t->constructors[i]->print_id);
- }
- }
- printf (" return -1;\n");
- printf ("}\n");
-}
-
-void gen_type_fetch (struct tl_type *t) {
- int empty = is_empty (t);;
- printf ("int fetch_type_%s (struct paramed_type *T) {\n", t->print_id);
- printf (" if (in_remaining () < 4) { return -1;}\n");
- if (!empty) {
- printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n");
- printf (" eprintf (\" (\");\n");
- }
- printf (" int magic = fetch_int ();\n");
- printf (" int res = -1;\n");
- printf (" switch (magic) {\n");
- int i;
- for (i = 0; i < t->constructors_num; i++) {
- printf (" case 0x%08x: res = fetch_constructor_%s (T); break;\n", t->constructors[i]->name, t->constructors[i]->print_id);
- }
- printf (" default: return -1;\n");
- printf (" }\n");
- if (!empty) {
- printf (" if (res >= 0) {\n");
- printf (" if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }\n");
- printf (" eprintf (\" )\");\n");
- //printf (" if (multiline_output >= 2) { printf (\"\\n\"); }\n");
- printf (" }\n");
- }
- printf (" return res;\n");
- printf ("}\n");
- printf ("int fetch_type_bare_%s (struct paramed_type *T) {\n", t->print_id);
- if (t->constructors_num > 1) {
- printf (" int *save_in_ptr = in_ptr;\n");
-
- if (!empty) {
- printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n");
- }
- for (i = 0; i < t->constructors_num; i++) {
- printf (" if (skip_constructor_%s (T) >= 0) { in_ptr = save_in_ptr; %sassert (!fetch_constructor_%s (T)); %sreturn 0; }\n", t->constructors[i]->print_id, empty ? "" : "eprintf (\" (\"); ", t->constructors[i]->print_id , empty ? "" : "if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (\" )\");");
- printf (" in_ptr = save_in_ptr;\n");
- }
- } else {
- for (i = 0; i < t->constructors_num; i++) {
- if (!empty) {
- printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n");
- printf (" eprintf (\" (\");\n");
- }
- printf (" if (fetch_constructor_%s (T) >= 0) { %sreturn 0; }\n", t->constructors[i]->print_id, empty ? "" : "if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (\" )\");" );
- }
- }
- printf (" return -1;\n");
- printf ("}\n");
-}
-
-void gen_type_store (struct tl_type *t) {
- int empty = is_empty (t);;
- int k = 0;
- for (k = 0; k < 2; k++) {
- printf ("int store_type_%s%s (struct paramed_type *T) {\n", k == 0 ? "" : "bare_", t->print_id);
- if (empty) {
- if (!k) {
- printf (" out_int (0x%08x);\n", t->constructors[0]->name);
- }
- printf (" if (store_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id);
- printf (" return 0;\n");
- printf ("}\n");
- } else {
- printf (" expect_token (\"(\", 1);\n");
- printf (" if (cur_token_len < 0) { return -1; }\n");
- printf (" if (cur_token_len < 0) { return -1; }\n");
- int i;
- for (i = 0; i < t->constructors_num; i++) {
- printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (t->constructors[i]->id), t->constructors[i]->id);
- if (!k) {
- printf (" out_int (0x%08x);\n", t->constructors[i]->name);
- }
- printf (" local_next_token ();\n");
- printf (" if (store_constructor_%s (T) < 0) { return -1; }\n", t->constructors[i]->print_id);
- printf (" expect_token (\")\", 1);\n");
- printf (" return 0;\n");
- printf (" }\n");
- }
- /*if (t->constructors_num == 1) {
- printf (" if (!force) {\n");
- if (!k) {
- printf (" out_int (0x%08x);\n", t->constructors[0]->name);
- }
- printf (" if (store_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id);
- printf (" expect_token (\")\", 1);\n");
- printf (" return 0;\n");
- printf (" }\n");
- }*/
- printf (" return -1;\n");
- printf ("}\n");
- }
- }
-}
-
-void gen_type_autocomplete (struct tl_type *t) {
- int empty = is_empty (t);;
- int k = 0;
- for (k = 0; k < 2; k++) {
- printf ("int autocomplete_type_%s%s (struct paramed_type *T) {\n", k == 0 ? "" : "bare_", t->print_id);
- if (empty) {
- printf (" if (autocomplete_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id);
- printf (" return 0;\n");
- printf ("}\n");
- } else {
- printf (" expect_token_autocomplete (\"(\", 1);\n");
- printf (" if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_%s); return -1; }\n", t->print_id);
- printf (" if (cur_token_len < 0) { return -1; }\n");
- int i;
- for (i = 0; i < t->constructors_num; i++) {
- printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (t->constructors[i]->id), t->constructors[i]->id);
- printf (" local_next_token ();\n");
- printf (" if (autocomplete_constructor_%s (T) < 0) { return -1; }\n", t->constructors[i]->print_id);
- printf (" expect_token_autocomplete (\")\", 1);\n");
- printf (" return 0;\n");
- printf (" }\n");
- }
- /*if (t->constructors_num == 1) {
- printf (" if (!force) {\n");
- printf (" if (autocomplete_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id);
- printf (" expect_token_autocomplete (\")\", 1);\n");
- printf (" return 0;\n");
- printf (" }\n");
- }*/
- printf (" return -1;\n");
- printf ("}\n");
- }
- }
-}
-
-void gen_type_fetch_ds (struct tl_type *t) {
- //int empty = is_empty (t);;
- print_c_type_name (t->constructors[0]->result, "", 0);
-
- printf ("fetch_ds_type_%s (struct paramed_type *T) {\n", t->print_id);
- printf (" assert (in_remaining () >= 4);\n");
- printf (" int magic = fetch_int ();\n");
- printf (" switch (magic) {\n");
- int i;
- for (i = 0; i < t->constructors_num; i++) {
- printf (" case 0x%08x: return fetch_ds_constructor_%s (T); break;\n", t->constructors[i]->name, t->constructors[i]->print_id);
- }
- printf (" default: assert (0); return NULL;\n");
- printf (" }\n");
- printf ("}\n");
- print_c_type_name (t->constructors[0]->result, "", 0);
- printf ("fetch_ds_type_bare_%s (struct paramed_type *T) {\n", t->print_id);
- if (t->constructors_num > 1) {
- printf (" int *save_in_ptr = in_ptr;\n");
-
- for (i = 0; i < t->constructors_num; i++) {
- printf (" if (skip_constructor_%s (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_%s (T); }\n", t->constructors[i]->print_id, t->constructors[i]->print_id);
- }
- } else {
- printf (" return fetch_ds_constructor_%s (T);\n", t->constructors[0]->print_id);
- }
- printf (" assert (0);\n");
- printf (" return NULL;\n");
- printf ("}\n");
-}
-
-void gen_type_free_ds (struct tl_type *t) {
- printf ("void free_ds_type_%s (", t->print_id);
- print_c_type_name (t->constructors[0]->result, "", 0);
- printf ("D, struct paramed_type *T) {\n");
-
- if (t->constructors_num > 1) {
- printf (" switch (D->magic) {\n");
- int i;
- for (i = 0; i < t->constructors_num; i++) {
- printf (" case 0x%08x: free_ds_constructor_%s (D, T); return; \n", t->constructors[i]->name, t->constructors[i]->print_id);
- }
- printf (" default: assert (0);\n");
- printf (" }\n");
- } else {
- printf (" free_ds_constructor_%s (D, T); return; \n", t->constructors[0]->print_id);
- }
- printf ("}\n");
-}
-
-void gen_type_store_ds (struct tl_type *t) {
- int k;
- for (k = 0; k < 2; k++) {
- if (k == 0) {
- printf ("void store_ds_type_%s (", t->print_id);
- } else {
- printf ("void store_ds_type_bare_%s (", t->print_id);
- }
- print_c_type_name (t->constructors[0]->result, "", 0);
- printf ("D, struct paramed_type *T) {\n");
-
- if (t->constructors_num > 1) {
- if (k == 0) {
- printf (" out_int (D->magic);\n");
- }
- printf (" switch (D->magic) {\n");
- int i;
- for (i = 0; i < t->constructors_num; i++) {
- printf (" case 0x%08x: store_ds_constructor_%s (D, T); return; \n", t->constructors[i]->name, t->constructors[i]->print_id);
- }
- printf (" default: assert (0);\n");
- printf (" }\n");
- } else {
- if (k == 0) {
- printf (" out_int (0x%08x);\n", t->constructors[0]->name);
- }
- printf (" store_ds_constructor_%s (D, T); return; \n", t->constructors[0]->print_id);
- }
- printf ("}\n");
- }
-}
-
-void gen_type_print_ds (struct tl_type *t) {
- int empty = is_empty (t);;
- int k;
- for (k = 0; k < 2; k++) {
- printf ("int print_ds_type_%s%s (", k ? "bare_" : "", t->print_id);
- print_c_type_name (t->constructors[0]->result, "", 0);
- printf ("DS, struct paramed_type *T) {\n");
- printf (" int res;\n");
- if (!empty) {
- printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n");
- printf (" eprintf (\" (\");\n");
- }
- if (t->constructors_num > 1) {
- printf (" switch (DS->magic) {\n");
- int i;
- for (i = 0; i < t->constructors_num; i++) {
- printf (" case 0x%08x: res = print_ds_constructor_%s (DS, T); break;\n", t->constructors[i]->name, t->constructors[i]->print_id);
- }
- printf (" default: return -1;\n");
- printf (" }\n");
- } else {
- printf (" res = print_ds_constructor_%s (DS, T);\n", t->constructors[0]->print_id);
- }
- if (!empty) {
- printf (" if (res >= 0) {\n");
- printf (" if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }\n");
- printf (" eprintf (\" )\");\n");
- //printf (" if (multiline_output >= 2) { printf (\"\\n\"); }\n");
- printf (" }\n");
- }
- printf (" return res;\n");
- printf ("}\n");
- }
-}
-
-void gen_function_store (struct tl_combinator *f) {
- printf ("struct paramed_type *store_function_%s (void) {\n", f->print_id);
- int i;
-
- int *vars = malloc0 (f->var_num * 4);;
- assert (f->var_num <= 10);
-
- for (i = 0; i < f->args_num; i++) if (!(f->args[i]->flags & FLAG_OPT_VAR)) {
- if (f->args[i]->flags & FLAG_EXCL) {
- assert (gen_field_store_excl (f->args[i], vars, i + 1, 1) >= 0);
- } else {
- assert (gen_field_store (f->args[i], vars, i + 1, 1, 0) >= 0);
- }
- }
-
-
- printf (" struct paramed_type *R = \n");
- assert (gen_create (f->result, vars, 2) >= 0);
- printf (";\n");
-
- free (vars);
- printf (" return paramed_type_dup (R);\n");
- printf ("}\n");
-}
-
-void gen_function_autocomplete (struct tl_combinator *f) {
- printf ("struct paramed_type *autocomplete_function_%s (void) {\n", f->print_id);
- int i;
-
- int *vars = malloc0 (f->var_num * 4);;
- assert (f->var_num <= 10);
-
- for (i = 0; i < f->args_num; i++) if (!(f->args[i]->flags & FLAG_OPT_VAR)) {
- if (f->args[i]->flags & FLAG_EXCL) {
- assert (gen_field_autocomplete_excl (f->args[i], vars, i + 1, 1) >= 0);
- } else {
- assert (gen_field_autocomplete (f->args[i], vars, i + 1, 1, 0) >= 0);
- }
- }
-
- printf (" struct paramed_type *R = \n");
- assert (gen_create (f->result, vars, 2) >= 0);
- printf (";\n");
-
- free (vars);
- printf (" return paramed_type_dup (R);\n");
- printf ("}\n");
-}
-
-void gen_type_do_autocomplete (struct tl_type *t) {
- printf ("int do_autocomplete_type_%s (const char *text, int text_len, int index, char **R) {\n", t->print_id);
- printf (" index ++;\n");
- int i;
- for (i = 0; i < t->constructors_num; i++) {
- printf (" if (index == %d) { if (!strncmp (text, \"%s\", text_len)) { *R = tstrdup (\"%s\"); return index; } else { index ++; }}\n", i, t->constructors[i]->id, t->constructors[i]->id);
- }
- printf (" *R = 0;\n");
- printf (" return 0;\n");
- printf ("}\n");
-}
-
-struct tl_tree *read_num_var (int *var_num) {
- struct tl_tree_var_num *T = malloc0 (sizeof (*T));
- T->self.flags = 0;
- T->self.methods = &tl_pvar_num_methods;;
- T->dif = get_int ();
- T->var_num = get_int ();
-
- if (T->var_num >= *var_num) {
- *var_num = T->var_num + 1;
- }
- assert (!(T->self.flags & FLAG_NOVAR));
- return (void *)T;
-}
-
-struct tl_tree *read_type_var (int *var_num) {
- struct tl_tree_var_type *T = malloc0 (sizeof (*T));
- T->self.methods = &tl_pvar_type_methods;
- T->var_num = get_int ();
- T->self.flags = get_int ();
- if (T->var_num >= *var_num) {
- *var_num = T->var_num + 1;
- }
- assert (!(T->self.flags & (FLAG_NOVAR | FLAG_BARE)));
- return (void *)T;
-}
-
-struct tl_tree *read_array (int *var_num) {
- struct tl_tree_array *T = malloc0 (sizeof (*T));
- T->self.methods = &tl_parray_methods;
- T->self.flags = 0;
- T->multiplicity = read_nat_expr (var_num);
- assert (T->multiplicity);
-
- T->args_num = get_int ();
- assert (T->args_num >= 0 && T->args_num <= 1000);
- T->args = malloc0 (sizeof (void *) * T->args_num);
-
- assert (read_args_list (T->args, T->args_num, var_num) >= 0);
- T->self.flags |= FLAG_NOVAR;
- int i;
- for (i = 0; i < T->args_num; i++) {
- if (!(T->args[i]->flags & FLAG_NOVAR)) {
- T->self.flags &= ~FLAG_NOVAR;
- }
- }
- return (void *)T;
-}
-
-struct tl_tree *read_type (int *var_num) {
- struct tl_tree_type *T = malloc0 (sizeof (*T));
- T->self.methods = &tl_ptype_methods;
-
- T->type = tl_type_get_by_name (get_int ());
- assert (T->type);
- T->self.flags = get_int ();
- T->children_num = get_int ();
- assert (T->type->arity == T->children_num);
- T->children = malloc0 (sizeof (void *) * T->children_num);
- int i;
- T->self.flags |= FLAG_NOVAR;
- for (i = 0; i < T->children_num; i++) {
- int t = get_int ();
- if (t == (int)TLS_EXPR_NAT) {
-#ifdef _MSC_VER
- assert ((T->type->params_types & (1i64 << i)));
-#else
- assert ((T->type->params_types & (1 << i)));
-#endif
- T->children[i] = read_nat_expr (var_num);
- } else if (t == (int)TLS_EXPR_TYPE) {
-#ifdef _MSC_VER
- assert (!(T->type->params_types & (1i64 << i)));
-#else
- assert (!(T->type->params_types & (1 << i)));
-#endif
- T->children[i] = read_type_expr (var_num);
- } else {
- assert (0);
- }
- if (!TL_IS_NAT_VAR (T->children[i]) && !(T->children[i]->flags & FLAG_NOVAR)) {
- T->self.flags &= ~FLAG_NOVAR;
- }
- }
- return (void *)T;
-}
-
-struct tl_tree *read_tree (int *var_num) {
- int x = get_int ();
- if (verbosity >= 2) {
- fprintf (stderr, "read_tree: constructor = 0x%08x\n", x);
- }
- switch (x) {
- case TLS_TREE_NAT_CONST:
- return read_num_const (var_num);
- case TLS_TREE_NAT_VAR:
- return read_num_var (var_num);
- case TLS_TREE_TYPE_VAR:
- return read_type_var (var_num);
- case TLS_TREE_TYPE:
- return read_type (var_num);
- case TLS_TREE_ARRAY:
- return read_array (var_num);
- default:
- if (verbosity) {
- fprintf (stderr, "x = %d\n", x);
- }
- assert (0);
- return 0;
- }
-}
-
-struct tl_tree *read_type_expr (int *var_num) {
- int x = get_int ();
- if (verbosity >= 2) {
- fprintf (stderr, "read_type_expr: constructor = 0x%08x\n", x);
- }
- switch (x) {
- case TLS_TYPE_VAR:
- return read_type_var (var_num);
- case TLS_TYPE_EXPR:
- return read_type (var_num);
- case TLS_ARRAY:
- return read_array (var_num);
- default:
- if (verbosity) {
- fprintf (stderr, "x = %d\n", x);
- }
- assert (0);
- return 0;
- }
-}
-
-struct tl_tree *read_nat_expr (int *var_num) {
- int x = get_int ();
- if (verbosity >= 2) {
- fprintf (stderr, "read_nat_expr: constructor = 0x%08x\n", x);
- }
- switch (x) {
- case TLS_NAT_CONST:
- return read_num_const (var_num);
- case TLS_NAT_VAR:
- return read_num_var (var_num);
- default:
- if (verbosity) {
- fprintf (stderr, "x = %d\n", x);
- }
- assert (0);
- return 0;
- }
-}
-
-struct tl_tree *read_expr (int *var_num) {
- int x = get_int ();
- if (verbosity >= 2) {
- fprintf (stderr, "read_nat_expr: constructor = 0x%08x\n", x);
- }
- switch (x) {
- case TLS_EXPR_NAT:
- return read_nat_expr (var_num);
- case TLS_EXPR_TYPE:
- return read_type_expr (var_num);
- default:
- if (verbosity) {
- fprintf (stderr, "x = %d\n", x);
- }
- assert (0);
- return 0;
- }
-}
-
-int read_args_list (struct arg **args, int args_num, int *var_num) {
- int i;
- for (i = 0; i < args_num; i++) {
- args[i] = malloc0 (sizeof (struct arg));
- args[i]->exist_var_num = -1;
- args[i]->exist_var_bit = 0;
- assert (get_int () == TLS_ARG_V2);
- args[i]->id = get_string ();
- args[i]->flags = get_int ();
-
- if (args[i]->flags & 2) {
- args[i]->flags &= ~2;
- args[i]->flags |= (1 << 20);
- }
- if (args[i]->flags & 4) {
- args[i]->flags &= ~4;
- args[i]->var_num = get_int ();
- } else {
- args[i]->var_num = -1;
- }
-
- int x = args[i]->flags & 6;
- args[i]->flags &= ~6;
- if (x & 2) { args[i]->flags |= 4; }
- if (x & 4) { args[i]->flags |= 2; }
-
- if (args[i]->var_num >= *var_num) {
- *var_num = args[i]->var_num + 1;
- }
- if (args[i]->flags & FLAG_OPT_FIELD) {
- args[i]->exist_var_num = get_int ();
- args[i]->exist_var_bit = get_int ();
- }
- args[i]->type = read_type_expr (var_num);
- assert (args[i]->type);
-
- if (args[i]->var_num < 0 && args[i]->exist_var_num < 0 && (TL_IS_NAT_VAR(args[i]->type) || (args[i]->type->flags & FLAG_NOVAR))) {
- args[i]->flags |= FLAG_NOVAR;
- }
- }
- return 1;
-}
-
-int read_combinator_args_list (struct tl_combinator *c) {
- c->args_num = get_int ();
- if (verbosity >= 2) {
- fprintf (stderr, "c->id = %s, c->args_num = %d\n", c->id, c->args_num);
- }
- assert (c->args_num >= 0 && c->args_num <= 1000);
- c->args = malloc0 (sizeof (void *) * c->args_num);
- c->var_num = 0;
- return read_args_list (c->args, c->args_num, &c->var_num);
-}
-
-int read_combinator_right (struct tl_combinator *c) {
- assert (get_int () == TLS_COMBINATOR_RIGHT_V2);
- c->result = read_type_expr (&c->var_num);
- assert (c->result);
- return 1;
-}
-
-int read_combinator_left (struct tl_combinator *c) {
- int x = get_int ();
-
- if (x == (int)TLS_COMBINATOR_LEFT_BUILTIN) {
- c->args_num = 0;
- c->var_num = 0;
- c->args = 0;
- return 1;
- } else if (x == TLS_COMBINATOR_LEFT) {
- return read_combinator_args_list (c);
- } else {
- assert (0);
- return -1;
- }
-}
-
-char *gen_print_id (const char *id) {
- static char s[1000];
- char *ptr = s;
- int first = 1;
- while (*id) {
- if (*id == '.') {
- *(ptr ++) = '_';
- } else if (*id >= 'A' && *id <= 'Z') {
- if (!first && *(ptr - 1) != '_') {
- *(ptr ++) = '_';
- }
- *(ptr ++) = *id - 'A' + 'a';
- } else {
- *(ptr ++) = *id;
- }
- id ++;
- first = 0;
- }
- *ptr = 0;
- return s;
-}
-
-struct tl_combinator *read_combinators (int v) {
- struct tl_combinator *c = malloc0 (sizeof (*c));
- c->name = get_int ();
- c->id = get_string ();
- c->print_id = strdup (gen_print_id (c->id));
- assert (c->print_id);
- //char *s = c->id;
- //while (*s) { if (*s == '.') { *s = '_'; } ; s ++;}
- int x = get_int ();
- struct tl_type *t = tl_type_get_by_name (x);
- assert (t || (!x && v == 3));
-
- if (v == 2) {
- assert (t->extra < t->constructors_num);
- t->constructors[t->extra ++] = c;
- c->is_fun = 0;
- } else {
- assert (v == 3);
- tl_function_insert_by_name (c);
- c->is_fun = 1;
- }
- assert (read_combinator_left (c) >= 0);
- assert (read_combinator_right (c) >= 0);
- return c;
-}
-
-struct tl_type *read_types (void) {
- struct tl_type *t = malloc0 (sizeof (*t));
- t->name = get_int ();
- t->id = get_string ();
- t->print_id = strdup (gen_print_id (t->id));
- assert (t->print_id);
-
- t->constructors_num = get_int ();
- assert (t->constructors_num >= 0 && t->constructors_num <= 1000);
-
- t->constructors = malloc0 (sizeof (void *) * t->constructors_num);
- t->flags = get_int ();
- t->arity = get_int ();
- t->params_types = get_long (); // params_types
- t->extra = 0;
- tl_type_insert_by_name (t);
- return t;
-}
-
-
-
-char *gen_what[1000];
-int gen_what_cnt;
-
-
-void gen_skip_header (void) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
-
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- printf ("int skip_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id);
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- printf ("int skip_type_%s (struct paramed_type *T);\n", tps[i]->print_id);
- printf ("int skip_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id);
- }
- printf ("int skip_type_any (struct paramed_type *T);\n");
-}
-
-void gen_skip_source (void) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#include \"auto-skip.h\"\n");
- printf ("#include \"..\\auto-static-skip.c\"\n");
- printf ("#include \"..\\mtproto-common.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
-
- printf ("#include \"auto/auto-skip.h\"\n");
- printf ("#include \"auto-static-skip.c\"\n");
- printf ("#include \"mtproto-common.h\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
-
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- gen_constructor_skip (tps[i]->constructors[j]);
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- gen_type_skip (tps[i]);
- }
- printf ("int skip_type_any (struct paramed_type *T) {\n");
- printf (" switch (T->type->name) {\n");
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
- printf (" case 0x%08x: return skip_type_%s (T);\n", tps[i]->name, tps[i]->print_id);
- printf (" case 0x%08x: return skip_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id);
- }
- printf (" default: return -1; }\n");
- printf ("}\n");
-}
-
-void gen_fetch_header (void) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
- printf ("#include <stdio.h>\n");
-
- printf ("struct tgl_state;\n");
- printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n");
-
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- printf ("int fetch_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id);
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- printf ("int fetch_type_%s (struct paramed_type *T);\n", tps[i]->print_id);
- printf ("int fetch_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id);
- }
- printf ("int fetch_type_any (struct paramed_type *T);\n");
-}
-
-void gen_fetch_source (void) {
- printf ("#ifdef _MSC_VER \n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#include \"auto-fetch.h\"\n");
- printf ("#include \"auto-skip.h\"\n");
- printf ("#include \"..\\auto-static-fetch.c\"\n");
- printf ("#include \"..\\mtproto-common.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
-
- printf ("#include \"auto/auto-fetch.h\"\n");
- printf ("#include \"auto/auto-skip.h\"\n");
- printf ("#include \"auto-static-fetch.c\"\n");
- printf ("#include \"mtproto-common.h\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- gen_constructor_fetch (tps[i]->constructors[j]);
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- gen_type_fetch (tps[i]);
- }
- printf ("int fetch_type_any (struct paramed_type *T) {\n");
- printf (" switch (T->type->name) {\n");
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
- printf (" case 0x%08x: return fetch_type_%s (T);\n", tps[i]->name, tps[i]->print_id);
- printf (" case 0x%08x: return fetch_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id);
- }
- printf (" default: return -1; }\n");
- printf ("}\n");
-}
-
-void gen_store_header (void) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
-
-
- printf ("struct paramed_type *tglf_extf_store (struct tgl_state *TLS, const char *data, int data_len);\n");
- printf ("int tglf_store_type (struct tgl_state *TLS, const char *work, int work_len, struct paramed_type *P);\n");
-
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- printf ("int store_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id);
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- printf ("int store_type_%s (struct paramed_type *T);\n", tps[i]->print_id);
- printf ("int store_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id);
- }
- for (i = 0; i < fn; i++) {
- printf ("struct paramed_type *store_function_%s (void);\n", fns[i]->print_id);
- }
- printf ("int store_type_any (struct paramed_type *T);\n");
- printf ("struct paramed_type *store_function_any (void);\n");
-}
-
-void gen_store_source (void ) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#include \"..\\mtproto-common.h\"\n");
- printf ("#include \"auto-store.h\"\n");
- printf ("#include \"..\\auto-static-store.c\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
-
- printf ("#include \"mtproto-common.h\"\n");
- printf ("#include \"auto/auto-store.h\"\n");
- printf ("#include \"auto-static-store.c\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
-
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- gen_constructor_store (tps[i]->constructors[j]);
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- gen_type_store (tps[i]);
- }
- for (i = 0; i < fn; i++) {
- gen_function_store (fns[i]);
- }
- printf ("int store_type_any (struct paramed_type *T) {\n");
- printf (" switch (T->type->name) {\n");
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
- printf (" case 0x%08x: return store_type_%s (T);\n", tps[i]->name, tps[i]->print_id);
- printf (" case 0x%08x: return store_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id);
- }
- printf (" default: return -1; }\n");
- printf ("}\n");
- printf ("struct paramed_type *store_function_any (void) {\n");
- printf (" if (cur_token_len != 1 || *cur_token != '(') { return 0; }\n");
- printf (" local_next_token ();\n");
- printf (" if (cur_token_len == 1 || *cur_token == '.') { \n");
- printf (" local_next_token ();\n");
- printf (" if (cur_token_len != 1 || *cur_token != '=') { return 0; }\n");
- printf (" local_next_token ();\n");
- printf (" };\n");
- printf (" if (cur_token_len < 0) { return 0; }\n");
- for (i = 0; i < fn; i++) {
- printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (fns[i]->id), fns[i]->id);
- printf (" out_int (0x%08x);\n", fns[i]->name);
- printf (" local_next_token ();\n");
- printf (" struct paramed_type *P = store_function_%s ();\n", fns[i]->print_id);
- printf (" if (!P) { return 0; }\n");
- printf (" if (cur_token_len != 1 || *cur_token != ')') { return 0; }\n");
- printf (" local_next_token ();\n");
- printf (" return P;\n");
- printf (" }\n");
- }
- printf (" return 0;\n");
- printf ("}\n");
-}
-
-void gen_autocomplete_header (void) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
-
- printf ("int tglf_extf_autocomplete (struct tgl_state *TLS, const char *text, int text_len, int index, char **R, char *data, int data_len);\n");
-
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- printf ("int autocomplete_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id);
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- printf ("int autocomplete_type_%s (struct paramed_type *T);\n", tps[i]->print_id);
- printf ("int do_autocomplete_type_%s (const char *text, int len, int index, char **R);\n", tps[i]->print_id);
- printf ("int autocomplete_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id);
- }
- printf ("int autocomplete_type_any (struct paramed_type *T);\n");
- printf ("struct paramed_type *autocomplete_function_any (void);\n");
-}
-
-void gen_autocomplete_source (void) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#include \"..\\mtproto-common.h\"\n");
- printf ("#include \"auto-autocomplete.h\"\n");
- printf ("#include \"..\\auto-static-autocomplete.c\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
-
- printf ("#include \"mtproto-common.h\"\n");
- printf ("#include \"auto/auto-autocomplete.h\"\n");
- printf ("#include \"auto-static-autocomplete.c\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
-
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- gen_constructor_autocomplete (tps[i]->constructors[j]);
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- gen_type_autocomplete (tps[i]);
- gen_type_do_autocomplete (tps[i]);
- }
- for (i = 0; i < fn; i++) {
- gen_function_autocomplete (fns[i]);
- }
- printf ("int autocomplete_type_any (struct paramed_type *T) {\n");
- printf (" switch (T->type->name) {\n");
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
- printf (" case 0x%08x: return autocomplete_type_%s (T);\n", tps[i]->name, tps[i]->print_id);
- printf (" case 0x%08x: return autocomplete_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id);
- }
- printf (" default: return -1; }\n");
- printf ("}\n");
- printf ("int do_autocomplete_function (const char *text, int text_len, int index, char **R) {\n");
- printf (" index ++;\n");
- for (i = 0; i < fn; i++) {
- printf (" if (index == %d) { if (!strncmp (text, \"%s\", text_len)) { *R = tstrdup (\"%s\"); return index; } else { index ++; }}\n", i, fns[i]->id, fns[i]->id);
- }
- printf (" *R = 0;\n");
- printf (" return 0;\n");
- printf ("}\n");
- printf ("struct paramed_type *autocomplete_function_any (void) {\n");
- printf (" expect_token_ptr_autocomplete (\"(\", 1);\n");
- printf (" if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_function); }\n");
- printf (" if (cur_token_len < 0) { return 0; }\n");
- for (i = 0; i < fn; i++) {
- printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (fns[i]->id), fns[i]->id);
- printf (" local_next_token ();\n");
- printf (" struct paramed_type *P = autocomplete_function_%s ();\n", fns[i]->print_id);
- printf (" if (!P) { return 0; }\n");
- printf (" expect_token_ptr_autocomplete (\")\", 1);\n");
- printf (" return P;\n");
- printf (" }\n");
- }
- printf (" return 0;\n");
- printf ("}\n");
-}
-
-void gen_types_header (void) {
- printf ("#ifndef __AUTO_TYPES_H__\n");
- printf ("#define __AUTO_TYPES_H__\n");
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
- printf ("#endif\n");
- int i;
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- printf ("extern struct tl_type_descr tl_type_%s;\n", tps[i]->print_id);
- printf ("extern struct tl_type_descr tl_type_bare_%s;\n", tps[i]->print_id);
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- printf ("struct tl_ds_%s {\n", tps[i]->print_id);
-#if !defined(__STDC__) || __STDC_VERSION__ < 199901L
- if (tps[i]->constructors_num == 1 && tps[i]->constructors[0]->args_num == 0 &&
- !(!strcmp (tps[i]->id, "String") || !strcmp (tps[i]->id, "Bytes"))) {
- printf (" int : 0;\n");
- printf ("};\n");
- continue;
- }
-#endif
-
- if (!strcmp (tps[i]->id, "String") || !strcmp (tps[i]->id, "Bytes")) {
- printf (" int len;\n");
- printf (" char *data;\n");
- printf ("};\n");
- continue;
- }
- int j;
- if (tps[i]->constructors_num > 1) {
- printf (" unsigned magic;\n");
- }
- for (j = 0; j < tps[i]->constructors_num; j++) {
- struct tl_combinator *c = tps[i]->constructors[j];
- int k;
- for (k = 0; k < c->args_num; k++) {
- if ((c->args[k]->flags & FLAG_OPT_VAR)) { continue; }
- if (c->args[k]->id && strlen (c->args[k]->id) && j > 0) {
- int l;
- int ok = 1;
- for (l = 0; l < j && ok; l++) {
- int m;
- struct tl_combinator *d = tps[i]->constructors[l];
- for (m = 0; m < d->args_num && ok; m++) {
- if (d->args[m]->id && !strcmp (d->args[m]->id, c->args[k]->id)) {
- ok = 0;
- }
- }
- }
- if (!ok) { continue; }
- }
-
- printf (" ");
- print_c_type_name (c->args[k]->type, " ", 1);
-
- if (!c->args[k]->id || !strlen (c->args[k]->id)) {
- assert (!j);
-
- printf ("f%d;\n", k);
- } else {
- printf ("%s;\n", c->args[k]->id);
- }
- }
- }
- printf ("};\n");
- }
- printf ("#endif\n");
-}
-
-void gen_types_source (void) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
- printf ("#endif\n");
- int i;
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- printf ("struct tl_type_descr tl_type_%s = {\n", tps[i]->print_id);
- printf (" .name = 0x%08x,\n", tps[i]->name);
- printf (" .id = \"%s\"\n,", tps[i]->id);
- printf (" .params_num = %d,\n", tps[i]->arity);
- printf (" .params_types = %"_PRINTF_INT64_"d\n", tps[i]->params_types);
- printf ("};\n");
- printf ("struct tl_type_descr tl_type_bare_%s = {\n", tps[i]->print_id);
- printf (" .name = 0x%08x,\n", ~tps[i]->name);
- printf (" .id = \"Bare_%s\",\n", tps[i]->id);
- printf (" .params_num = %d,\n", tps[i]->arity);
- printf (" .params_types = %"_PRINTF_INT64_"d\n", tps[i]->params_types);
- printf ("};\n");
- }
-}
-
-void gen_fetch_ds_source (void) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#include \"auto-fetch-ds.h\"\n");
- printf ("#include \"auto-skip.h\"\n");
- printf ("#include \"auto-types.h\"\n");
- printf ("#include \"..\\auto-static-fetch-ds.c\"\n");
- printf ("#include \"..\\mtproto-common.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
-
- printf ("#include \"auto/auto-fetch-ds.h\"\n");
- printf ("#include \"auto/auto-skip.h\"\n");
- printf ("#include \"auto/auto-types.h\"\n");
- printf ("#include \"auto-static-fetch-ds.c\"\n");
- printf ("#include \"mtproto-common.h\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- gen_constructor_fetch_ds (tps[i]->constructors[j]);
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- gen_type_fetch_ds (tps[i]);
- }
- printf ("void *fetch_ds_type_any (struct paramed_type *T) {\n");
- printf (" switch (T->type->name) {\n");
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
- printf (" case 0x%08x: return fetch_ds_type_%s (T);\n", tps[i]->name, tps[i]->print_id);
- printf (" case 0x%08x: return fetch_ds_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id);
- }
- printf (" default: return NULL; }\n");
- printf ("}\n");
-}
-
-void gen_fetch_ds_header (void) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
- printf ("#include <stdio.h>\n");
-
- printf ("struct tgl_state;\n");
- //printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n");
-
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- print_c_type_name (tps[i]->constructors[j]->result, "", 0);
- printf ("fetch_ds_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id);
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- print_c_type_name (tps[i]->constructors[0]->result, "", 0);
- printf ("fetch_ds_type_%s (struct paramed_type *T);\n", tps[i]->print_id);
- print_c_type_name (tps[i]->constructors[0]->result, "", 0);
- printf ("fetch_ds_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id);
- }
- printf ("void *fetch_ds_type_any (struct paramed_type *T);\n");
-}
-
-void gen_free_ds_source (void) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#include \"auto-free-ds.h\"\n");
- printf ("#include \"auto-skip.h\"\n");
- printf ("#include \"auto-types.h\"\n");
- printf ("#include \"..\\auto-static-free-ds.c\"\n");
- printf ("#include \"..\\mtproto-common.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
-
- printf ("#include \"auto/auto-free-ds.h\"\n");
- printf ("#include \"auto/auto-skip.h\"\n");
- printf ("#include \"auto/auto-types.h\"\n");
- printf ("#include \"auto-static-free-ds.c\"\n");
- printf ("#include \"mtproto-common.h\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- gen_constructor_free_ds (tps[i]->constructors[j]);
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- gen_type_free_ds (tps[i]);
- }
- printf ("void free_ds_type_any (void *D, struct paramed_type *T) {\n");
- printf (" switch (T->type->name) {\n");
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
- printf (" case 0x%08x: free_ds_type_%s (D, T); return;\n", tps[i]->name, tps[i]->print_id);
- printf (" case 0x%08x: free_ds_type_%s (D, T); return;\n", ~tps[i]->name, tps[i]->print_id);
- }
- printf (" default: return; }\n");
- printf ("}\n");
-}
-
-void gen_free_ds_header (void) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#include \"auto-types.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
- printf ("#include \"auto/auto-types.h\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
- printf ("#include <stdio.h>\n");
-
- printf ("struct tgl_state;\n");
- //printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n");
-
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- printf ("void free_ds_constructor_%s (", tps[i]->constructors[j]->print_id);
- print_c_type_name (tps[i]->constructors[j]->result, "", 0);
- printf ("D, struct paramed_type *T);\n");
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- printf ("void free_ds_type_%s (", tps[i]->print_id);
- print_c_type_name (tps[i]->constructors[0]->result, "", 0);
- printf ("D, struct paramed_type *T);\n");
- }
- printf ("void free_ds_type_any (void *D, struct paramed_type *T);\n");
-}
-
-void gen_store_ds_source (void) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#include \"auto-store-ds.h\"\n");
- printf ("#include \"auto-skip.h\"\n");
- printf ("#include \"auto-types.h\"\n");
- printf ("#include \"..\\auto-static-store-ds.c\"\n");
- printf ("#include \"..\\mtproto-common.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
-
- printf ("#include \"auto/auto-store-ds.h\"\n");
- printf ("#include \"auto/auto-skip.h\"\n");
- printf ("#include \"auto/auto-types.h\"\n");
- printf ("#include \"auto-static-store-ds.c\"\n");
- printf ("#include \"mtproto-common.h\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- gen_constructor_store_ds (tps[i]->constructors[j]);
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- gen_type_store_ds (tps[i]);
- }
- printf ("void store_ds_type_any (void *D, struct paramed_type *T) {\n");
- printf (" switch (T->type->name) {\n");
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
- printf (" case 0x%08x: store_ds_type_%s (D, T); return;\n", tps[i]->name, tps[i]->print_id);
- printf (" case 0x%08x: store_ds_type_bare_%s (D, T); return;\n", ~tps[i]->name, tps[i]->print_id);
- }
- printf (" default: return; }\n");
- printf ("}\n");
-}
-
-void gen_store_ds_header (void) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#include \"auto-types.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
- printf ("#include \"auto/auto-types.h\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
- printf ("#include <stdio.h>\n");
-
- printf ("struct tgl_state;\n");
- //printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n");
-
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- printf ("void store_ds_constructor_%s (", tps[i]->constructors[j]->print_id);
- print_c_type_name (tps[i]->constructors[j]->result, "", 0);
- printf ("D, struct paramed_type *T);\n");
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- printf ("void store_ds_type_%s (", tps[i]->print_id);
- print_c_type_name (tps[i]->constructors[0]->result, "", 0);
- printf ("D, struct paramed_type *T);\n");
- printf ("void store_ds_type_bare_%s (", tps[i]->print_id);
- print_c_type_name (tps[i]->constructors[0]->result, "", 0);
- printf ("D, struct paramed_type *T);\n");
- }
- printf ("void store_ds_type_any (void *D, struct paramed_type *T);\n");
-}
-
-void gen_print_ds_header (void) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#include \"auto-types.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
- printf ("#include \"auto-types.h\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
- printf ("#include <stdio.h>\n");
-
- printf ("struct tgl_state;\n");
- printf ("char *tglf_extf_print_ds (struct tgl_state *TLS, void *DS, struct paramed_type *T);\n");
-
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- printf ("int print_ds_constructor_%s (", tps[i]->constructors[j]->print_id);
- print_c_type_name (tps[i]->constructors[j]->result, "", 0);
- printf ("DS, struct paramed_type *T);\n");
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- printf ("int print_ds_type_%s (", tps[i]->print_id);
- print_c_type_name (tps[i]->constructors[0]->result, "", 0);
- printf ("DS, struct paramed_type *T);\n");
- printf ("int print_ds_type_bare_%s (", tps[i]->print_id);
- print_c_type_name (tps[i]->constructors[0]->result, "", 0);
- printf ("DS, struct paramed_type *T);\n");
- }
- printf ("int print_ds_type_any (void *DS, struct paramed_type *T);\n");
-}
-
-void gen_print_ds_source (void) {
- printf ("#ifdef _MSC_VER\n");
- printf ("#include \"..\\auto.h\"\n");
- printf ("#include \"auto-print-ds.h\"\n");
- printf ("#include \"auto-skip.h\"\n");
- printf ("#include \"..\\auto-static-print-ds.c\"\n");
- printf ("#include \"..\\mtproto-common.h\"\n");
- printf ("#else\n");
- printf ("#include \"auto.h\"\n");
-
- printf ("#include \"auto/auto-print-ds.h\"\n");
- printf ("#include \"auto/auto-skip.h\"\n");
- printf ("#include \"auto-static-print-ds.c\"\n");
- printf ("#include \"mtproto-common.h\"\n");
- printf ("#endif\n");
- printf ("#include <assert.h>\n");
- int i, j;
- for (i = 0; i < tn; i++) {
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- gen_constructor_print_ds (tps[i]->constructors[j]);
- }
- }
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- gen_type_print_ds (tps[i]);
- }
- printf ("int print_ds_type_any (void *DS, struct paramed_type *T) {\n");
- printf (" switch (T->type->name) {\n");
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
- printf (" case 0x%08x: return print_ds_type_%s (DS, T);\n", tps[i]->name, tps[i]->print_id);
- printf (" case 0x%08x: return print_ds_type_bare_%s (DS, T);\n", ~tps[i]->name, tps[i]->print_id);
- }
- printf (" default: return -1; }\n");
- printf ("}\n");
-}
-
-int parse_tlo_file (void) {
- buf_end = buf_ptr + (buf_size / 4);
- assert (get_int () == TLS_SCHEMA_V2);
-
- get_int (); // version
- get_int (); // date
-
- tn = 0;
- fn = 0;
- cn = 0;
- int i;
-
- tn = get_int ();
- assert (tn >= 0 && tn < 10000);
- tps = malloc0 (sizeof (void *) * tn);
-
- if (verbosity >= 2) {
- fprintf (stderr, "Found %d types\n", tn);
- }
-
- for (i = 0; i < tn; i++) {
- assert (get_int () == TLS_TYPE);
- tps[i] = read_types ();
- assert (tps[i]);
- }
-
- cn = get_int ();
- assert (cn >= 0);
-
- if (verbosity >= 2) {
- fprintf (stderr, "Found %d constructors\n", cn);
- }
-
- for (i = 0; i < cn; i++) {
- assert (get_int () == TLS_COMBINATOR);
- assert (read_combinators (2));
- }
-
- fn = get_int ();
- assert (fn >= 0 && fn < 10000);
-
- fns = malloc0 (sizeof (void *) * fn);
-
- if (verbosity >= 2) {
- fprintf (stderr, "Found %d functions\n", fn);
- }
-
- for (i = 0; i < fn; i++) {
- assert (get_int () == TLS_COMBINATOR);
- fns[i] = read_combinators (3);
- assert (fns[i]);
- }
-
- assert (buf_ptr == buf_end);
-
-
- int j;
- for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
- tps[i]->name = 0;
- for (j = 0; j < tps[i]->constructors_num; j ++) {
- tps[i]->name ^= tps[i]->constructors[j]->name;
- }
- }
-
-
- for (i = 0; i < gen_what_cnt; i++) {
- if (!strcmp (gen_what[i], "fetch")) {
- gen_fetch_source ();
- } else if (!strcmp (gen_what[i], "fetch-header")) {
- gen_fetch_header ();
- } else if (!strcmp (gen_what[i], "skip")) {
- gen_skip_source ();
- } else if (!strcmp (gen_what[i], "skip-header")) {
- gen_skip_header ();
- } else if (!strcmp (gen_what[i], "store")) {
- gen_store_source ();
- } else if (!strcmp (gen_what[i], "store-header")) {
- gen_store_header ();
- } else if (!strcmp (gen_what[i], "autocomplete")) {
- gen_autocomplete_source ();
- } else if (!strcmp (gen_what[i], "autocomplete-header")) {
- gen_autocomplete_header ();
- } else if (!strcmp (gen_what[i], "types")) {
- gen_types_source ();
- } else if (!strcmp (gen_what[i], "types-header")) {
- gen_types_header ();
- } else if (!strcmp (gen_what[i], "fetch-ds")) {
- gen_fetch_ds_source ();
- } else if (!strcmp (gen_what[i], "fetch-ds-header")) {
- gen_fetch_ds_header ();
- } else if (!strcmp (gen_what[i], "free-ds")) {
- gen_free_ds_source ();
- } else if (!strcmp (gen_what[i], "free-ds-header")) {
- gen_free_ds_header ();
- } else if (!strcmp (gen_what[i], "store-ds")) {
- gen_store_ds_source ();
- } else if (!strcmp (gen_what[i], "store-ds-header")) {
- gen_store_ds_header ();
- } else if (!strcmp (gen_what[i], "print-ds")) {
- gen_print_ds_source ();
- } else if (!strcmp (gen_what[i], "print-ds-header")) {
- gen_print_ds_header ();
- } else {
- assert (0);
- }
- }
-
-
- return 0;
-}
-
-void usage (void) {
- printf ("usage: generate [-v] [-h] <tlo-file>\n"
- );
- exit (2);
-}
-
-#ifndef _MSC_VER
-void logprintf (const char *format, ...) __attribute__ ((format (printf, 1, 2)));
-void logprintf (const char *format __attribute__ ((unused)), ...) {
-}
-#endif
-/*
-void hexdump (int *in_ptr, int *in_end) {
- int *ptr = in_ptr;
- while (ptr < in_end) { printf (" %08x", *(ptr ++)); }
- printf ("\n");
-}*/
-
-#ifdef HAVE_EXECINFO_H
-void print_backtrace (void) {
- void *buffer[255];
- const int calls = backtrace (buffer, sizeof (buffer) / sizeof (void *));
- backtrace_symbols_fd (buffer, calls, 1);
-}
-#else
-void print_backtrace (void) {
- if (write (1, "No libexec. Backtrace disabled\n", 32) < 0) {
- // Sad thing
- }
-}
-#endif
-
-void sig_segv_handler (int signum __attribute__ ((unused))) {
- if (write (1, "SIGSEGV received\n", 18) < 0) {
- // Sad thing
- }
- print_backtrace ();
- exit (EXIT_FAILURE);
-}
-
-void sig_abrt_handler (int signum __attribute__ ((unused))) {
- if (write (1, "SIGABRT received\n", 18) < 0) {
- // Sad thing
- }
- print_backtrace ();
- exit (EXIT_FAILURE);
-}
-
-int main (int argc, char **argv) {
- signal (SIGSEGV, sig_segv_handler);
- signal (SIGABRT, sig_abrt_handler);
- int i;
- while ((i = getopt (argc, argv, "vhHg:")) != -1) {
- switch (i) {
- case 'h':
- usage ();
- return 2;
- case 'v':
- verbosity++;
- break;
- case 'H':
- header ++;
- break;
- case 'g':
- assert (gen_what_cnt < 1000);
- gen_what[gen_what_cnt ++] = optarg;
- break;
- }
- }
-
- if (argc != optind + 1) {
- usage ();
- }
-
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- int fd = 0;
- errno_t err = _sopen_s(&fd, argv[optind], _O_RDONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE);
- if(err != 0) {
- char errnoStr[256] = { 0 };
- strerror_s (errnoStr, 256, err);
- fprintf (stderr, "Can not open file '%s'. Error %s\n", argv[optind], errnoStr);
-#elif defined(WIN32) || defined(_WIN32)
- int fd = open (argv[optind], O_RDONLY | O_BINARY);
- if (fd < 0) {
- fprintf (stderr, "Can not open file '%s'. Error %s\n", argv[optind], strerror (errno));
-#else
- int fd = open (argv[optind], O_RDONLY);
- if (fd < 0) {
- fprintf (stderr, "Can not open file '%s'. Error %m\n", argv[optind]);
-#endif
- exit (1);
- }
- buf_size = read (fd, buf, (1 << 20));
- if (fd == (1 << 20)) {
- fprintf (stderr, "Too big tlo file\n");
- exit (2);
- }
- return parse_tlo_file ();
-}
diff --git a/libs/tgl/src/generate.h b/libs/tgl/src/generate.h
deleted file mode 100644
index 5d46a6c4ec..0000000000
--- a/libs/tgl/src/generate.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- This file is part of tgl-libary/generate
-
- Tgl-library/generate is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- Tgl-library/generate is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this tgl-library/generate. If not, see <http://www.gnu.org/licenses/>.
-
- Copyright Vitaly Valtman 2014-2015
-
- It is derivative work of VK/KittenPHP-DB-Engine (https://github.com/vk-com/kphp-kdb/)
- Copyright 2012-2013 Vkontakte Ltd
- 2012-2013 Vitaliy Valtman
-*/
-
-#ifndef __GENERATE_H__
-#define __GENERATE_H__
-
-struct tl_combinator;
-
-struct tl_type {
-// struct tl_type_methods *methods;
- char *id;
- char *print_id;
- unsigned name;
- int arity;
- int flags;
- int constructors_num;
- struct tl_combinator **constructors;
- long long params_types;
- int extra;
-};
-
-#define NODE_TYPE_TYPE 1
-#define NODE_TYPE_NAT_CONST 2
-#define NODE_TYPE_VAR_TYPE 3
-#define NODE_TYPE_VAR_NUM 4
-#define NODE_TYPE_ARRAY 5
-
-#define MAX_COMBINATOR_VARS 64
-
-#define NAME_VAR_NUM 0x70659eff
-#define NAME_VAR_TYPE 0x2cecf817
-#define NAME_INT 0xa8509bda
-#define NAME_LONG 0x22076cba
-#define NAME_DOUBLE 0x2210c154
-#define NAME_STRING 0xb5286e24
-#define NAME_VECTOR 0x1cb5c415
-#define NAME_MAYBE_TRUE 0x3f9c8ef8
-#define NAME_MAYBE_FALSE 0x27930a7b
-#define NAME_BOOL_FALSE 0xbc799737
-#define NAME_BOOL_TRUE 0x997275b5
-#define NAME_BYTES 0x0ee1379f
-
-
-#define FLAG_OPT_VAR (1 << 17)
-#define FLAG_EXCL (1 << 18)
-#define FLAG_OPT_FIELD (1 << 20)
-#define FLAG_NOVAR (1 << 21)
-#define FLAG_BARE 1
-#define FLAGS_MASK ((1 << 16) - 1)
-#define FLAG_DEFAULT_CONSTRUCTOR (1 << 25)
-#define FLAG_NOCONS (1 << 1)
-
-extern struct tl_tree_methods tl_nat_const_methods;
-extern struct tl_tree_methods tl_nat_const_full_methods;
-extern struct tl_tree_methods tl_pnat_const_full_methods;
-extern struct tl_tree_methods tl_array_methods;
-extern struct tl_tree_methods tl_type_methods;
-extern struct tl_tree_methods tl_parray_methods;
-extern struct tl_tree_methods tl_ptype_methods;
-extern struct tl_tree_methods tl_var_num_methods;
-extern struct tl_tree_methods tl_var_type_methods;
-extern struct tl_tree_methods tl_pvar_num_methods;
-extern struct tl_tree_methods tl_pvar_type_methods;
-#define TL_IS_NAT_VAR(x) (((long)x) & 1)
-#define TL_TREE_METHODS(x) (TL_IS_NAT_VAR (x) ? &tl_nat_const_methods : ((struct tl_tree *)(x))->methods)
-
-#define DEC_REF(x) (TL_TREE_METHODS(x)->dec_ref ((void *)x))
-#define INC_REF(x) (TL_TREE_METHODS(x)->inc_ref ((void *)x))
-#define TYPE(x) (TL_TREE_METHODS(x)->type ((void *)x))
-
-typedef unsigned long long tl_tree_hash_t;
-struct tl_tree;
-
-struct tl_tree_methods {
- int (*type)(struct tl_tree *T);
- int (*eq)(struct tl_tree *T, struct tl_tree *U);
- void (*inc_ref)(struct tl_tree *T);
- void (*dec_ref)(struct tl_tree *T);
-};
-
-struct tl_tree {
- int ref_cnt;
- int flags;
- //tl_tree_hash_t hash;
- struct tl_tree_methods *methods;
-};
-/*
-struct tl_tree_nat_const {
- struct tl_tree self;
- int value;
-};*/
-
-struct tl_tree_type {
- struct tl_tree self;
-
- struct tl_type *type;
- int children_num;
- struct tl_tree **children;
-};
-
-struct tl_tree_array {
- struct tl_tree self;
-
- struct tl_tree *multiplicity;
- int args_num;
- struct arg **args;
-};
-
-struct tl_tree_var_type {
- struct tl_tree self;
-
- int var_num;
-};
-
-struct tl_tree_var_num {
- struct tl_tree self;
-
- int var_num;
- int dif;
-};
-
-struct tl_tree_nat_const {
- struct tl_tree self;
-
- long long value;
-};
-
-struct arg {
- char *id;
- int var_num;
- int flags;
- int exist_var_num;
- int exist_var_bit;
- struct tl_tree *type;
-};
-
-struct tl_combinator {
- //struct tl_combinator_methods *methods;
- char *id;
- char *print_id;
- unsigned name;
- int is_fun;
- int var_num;
- int args_num;
- struct arg **args;
- struct tl_tree *result;
- void **IP;
- void **fIP;
- int IP_len;
- int fIP_len;
-};
-
-#endif
diff --git a/libs/tgl/src/mtproto.tl b/libs/tgl/src/mtproto.tl
deleted file mode 100644
index 2f02c49ae8..0000000000
--- a/libs/tgl/src/mtproto.tl
+++ /dev/null
@@ -1,19 +0,0 @@
----types---
-resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:(Vector long) = ResPQ;
-server_DH_params_fail#79cb045d nonce:int128 server_nonce:int128 new_nonce_hash:int128 = Server_DH_Params;
-server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
-
-p_q_inner_data#83c95aec pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 = P_Q_inner_data;
-p_q_inner_data_temp#3c6a84d4 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 expires_in:int = P_Q_inner_data;
-client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;
-
-dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
-dh_gen_retry#46dc1fb9 nonce:int128 server_nonce:int128 new_nonce_hash2:int128 = Set_client_DH_params_answer;
-dh_gen_fail#a69dae02 nonce:int128 server_nonce:int128 new_nonce_hash3:int128 = Set_client_DH_params_answer;
-
-server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data;
-
----functions---
-req_pq#60469778 nonce:int128 = ResPQ;
-req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;
-set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
diff --git a/libs/tgl/src/scheme.tl b/libs/tgl/src/scheme.tl
deleted file mode 100644
index a38980aea4..0000000000
--- a/libs/tgl/src/scheme.tl
+++ /dev/null
@@ -1 +0,0 @@
-scheme31.tl \ No newline at end of file
diff --git a/libs/tgl/src/scheme12.tl b/libs/tgl/src/scheme12.tl
deleted file mode 100644
index 7d37a6fdc5..0000000000
--- a/libs/tgl/src/scheme12.tl
+++ /dev/null
@@ -1,505 +0,0 @@
-int ?= Int;
-long ?= Long;
-double ?= Double;
-string ?= String;
-
-bytes string = Bytes;
-
-boolFalse#bc799737 = Bool;
-boolTrue#997275b5 = Bool;
-
-vector#1cb5c415 {t:Type} # [ t ] = Vector t;
-
-error#c4b9f9bb code:int text:string = Error;
-
-null#56730bcc = Null;
-
-inputPeerEmpty#7f3b18ea = InputPeer;
-inputPeerSelf#7da07ec9 = InputPeer;
-inputPeerContact#1023dbe8 user_id:int = InputPeer;
-inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
-inputPeerChat#179be863 chat_id:int = InputPeer;
-
-inputUserEmpty#b98886cf = InputUser;
-inputUserSelf#f7c1b13f = InputUser;
-inputUserContact#86e94f65 user_id:int = InputUser;
-inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
-
-inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
-
-inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
-
-inputMediaEmpty#9664f57f = InputMedia;
-inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
-inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia;
-inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
-inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
-inputMediaUploadedVideo#4847d92a file:InputFile duration:int w:int h:int = InputMedia;
-inputMediaUploadedThumbVideo#e628a145 file:InputFile thumb:InputFile duration:int w:int h:int = InputMedia;
-inputMediaVideo#7f023ae6 id:InputVideo = InputMedia;
-
-inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
-inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
-inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
-
-inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
-inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint;
-
-inputPhotoEmpty#1cd7bf0d = InputPhoto;
-inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
-
-inputVideoEmpty#5508ec75 = InputVideo;
-inputVideo#ee579652 id:long access_hash:long = InputVideo;
-
-inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
-inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
-
-inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
-inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
-
-inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
-
-peerUser#9db1bc6d user_id:int = Peer;
-peerChat#bad0e5bb chat_id:int = Peer;
-
-storage.fileUnknown#aa963b05 = storage.FileType;
-storage.fileJpeg#7efe0e = storage.FileType;
-storage.fileGif#cae1aadf = storage.FileType;
-storage.filePng#a4f63c0 = storage.FileType;
-storage.filePdf#ae1e508d = storage.FileType;
-storage.fileMp3#528a0677 = storage.FileType;
-storage.fileMov#4b09ebbc = storage.FileType;
-storage.filePartial#40bc6f52 = storage.FileType;
-storage.fileMp4#b3cea0e4 = storage.FileType;
-storage.fileWebp#1081464c = storage.FileType;
-
-fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
-fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
-
-userEmpty#200250ba id:int = User;
-userSelf#720535ec id:int first_name:string last_name:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
-userContact#f2fb8319 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userRequest#22e8ceb0 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userForeign#5214c89d id:int first_name:string last_name:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
-userDeleted#b29ad7cc id:int first_name:string last_name:string = User;
-
-userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
-userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
-
-userStatusEmpty#9d05049 = UserStatus;
-userStatusOnline#edb93949 expires:int = UserStatus;
-userStatusOffline#8c703f was_online:int = UserStatus;
-
-chatEmpty#9ba2d800 id:int = Chat;
-chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
-chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
-
-chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
-
-chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
-
-chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
-chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
-
-chatPhotoEmpty#37c1011c = ChatPhoto;
-chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
-
-messageEmpty#83e5de54 id:int = Message;
-message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
-messageForwarded#5f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
-messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message;
-
-messageMediaEmpty#3ded6320 = MessageMedia;
-messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
-messageMediaVideo#a2d24290 video:Video = MessageMedia;
-messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
-messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
-messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia;
-
-messageActionEmpty#b6aef7b0 = MessageAction;
-messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
-messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
-messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
-messageActionChatDeletePhoto#95e3fbef = MessageAction;
-messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
-messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
-
-dialog#214a8cdf peer:Peer top_message:int unread_count:int = Dialog;
-
-photoEmpty#2331b22d id:long = Photo;
-photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-
-photoSizeEmpty#e17e23c type:string = PhotoSize;
-photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
-photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
-
-videoEmpty#c10658a8 id:long = Video;
-video#5a04a49f id:long access_hash:long user_id:int date:int caption:string duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-
-geoPointEmpty#1117dd5f = GeoPoint;
-geoPoint#2049d70c long:double lat:double = GeoPoint;
-
-auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone;
-
-auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
-
-auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
-
-inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
-inputNotifyUsers#193b4417 = InputNotifyPeer;
-inputNotifyChats#4a95e84e = InputNotifyPeer;
-inputNotifyAll#a429b886 = InputNotifyPeer;
-
-inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
-inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
-
-inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
-
-peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
-peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
-
-peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
-peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
-
-wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
-
-userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
-
-contact#f911c994 user_id:int mutual:Bool = Contact;
-
-importedContact#d0028438 user_id:int client_id:long = ImportedContact;
-
-contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
-
-contactFound#ea879f95 user_id:int = ContactFound;
-
-contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
-
-contactStatus#aa77b873 user_id:int expires:int = ContactStatus;
-
-chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
-
-contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink;
-contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink;
-contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink;
-
-contacts.myLinkEmpty#d22a1c60 = contacts.MyLink;
-contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink;
-contacts.myLinkContact#c240ebd9 = contacts.MyLink;
-
-contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link;
-
-contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
-contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
-
-contacts.importedContacts#d1cd0a4c imported:Vector<ImportedContact> users:Vector<User> = contacts.ImportedContacts;
-
-contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-
-contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
-
-contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
-
-messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-
-messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-
-messages.messageEmpty#3f4e0648 = messages.Message;
-messages.message#ff90c417 message:Message chats:Vector<Chat> users:Vector<User> = messages.Message;
-
-messages.statedMessages#969478bb messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessages;
-
-messages.statedMessage#d07ae726 message:Message chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessage;
-
-messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage;
-
-messages.chat#40e9002a chat:Chat users:Vector<User> = messages.Chat;
-
-messages.chats#8150cbd8 chats:Vector<Chat> users:Vector<User> = messages.Chats;
-
-messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-
-messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory;
-
-inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
-inputMessagesFilterPhotos#9609a51c = MessagesFilter;
-inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
-inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
-inputMessagesFilterDocument#9eddf188 = MessagesFilter;
-inputMessagesFilterAudio#cfc87522 = MessagesFilter;
-
-updateNewMessage#13abdb3 message:Message pts:int = Update;
-updateMessageID#4e90bfd6 id:int random_id:long = Update;
-updateReadMessages#c6649e31 messages:Vector<int> pts:int = Update;
-updateDeleteMessages#a92bfe26 messages:Vector<int> pts:int = Update;
-updateRestoreMessages#d15de04d messages:Vector<int> pts:int = Update;
-updateUserTyping#6baa8508 user_id:int = Update;
-updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update;
-updateChatParticipants#7761198 participants:ChatParticipants = Update;
-updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
-updateUserName#da22d9ad user_id:int first_name:string last_name:string = Update;
-updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
-updateContactRegistered#2575bbb9 user_id:int date:int = Update;
-updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update;
-updateActivation#6f690963 user_id:int = Update;
-updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
-
-updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
-
-updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
-updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
-updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
-
-updatesTooLong#e317af7e = Updates;
-updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates;
-updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates;
-updateShort#78d4dec1 update:Update date:int = Updates;
-updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
-updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
-
-photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
-photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
-
-photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
-
-upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
-
-dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
-
-config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
-
-nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
-
-help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
-help.noAppUpdate#c45a6536 = help.AppUpdate;
-
-help.inviteText#18cb9f78 message:string = help.InviteText;
-
-messages.statedMessagesLinks#3e74f5c6 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
-
-messages.statedMessageLink#a9af2881 message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
-
-messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
-
-inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
-
-inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer;
-
-geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
-
-geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
-geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
-geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
-
-geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
-
-geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
-
-geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-
-messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
-messageActionGeoChatCheckin#c7d53de = MessageAction;
-
-updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update;
-
-wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
-
-updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update;
-updateEncryptedChatTyping#1710f156 chat_id:int = Update;
-updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update;
-updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
-
-encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
-encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
-encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
-encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
-
-inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
-
-encryptedFileEmpty#c21f497e = EncryptedFile;
-encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
-
-inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
-inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
-inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
-
-inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
-
-encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
-encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
-
-decryptedMessageLayer#99a438cf layer:int message:DecryptedMessage = DecryptedMessageLayer;
-
-decryptedMessage#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
-decryptedMessageService#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
-
-decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia;
-decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaVideo#4cee6ef3 thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaGeoPoint#35480a59 lat:double long:double = DecryptedMessageMedia;
-decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
-
-decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction;
-
-messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
-messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
-
-messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
-messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
-
-inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
-
-inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
-
-updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
-updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
-updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
-
-inputMediaUploadedAudio#61a6d436 file:InputFile duration:int = InputMedia;
-inputMediaAudio#89938781 id:InputAudio = InputMedia;
-inputMediaUploadedDocument#34e794bd file:InputFile file_name:string mime_type:string = InputMedia;
-inputMediaUploadedThumbDocument#3e46de5d file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia;
-inputMediaDocument#d184e841 id:InputDocument = InputMedia;
-
-messageMediaDocument#2fda2204 document:Document = MessageMedia;
-messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
-
-inputAudioEmpty#d95adc84 = InputAudio;
-inputAudio#77d440ff id:long access_hash:long = InputAudio;
-
-inputDocumentEmpty#72f0eaae = InputDocument;
-inputDocument#18798952 id:long access_hash:long = InputDocument;
-
-inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
-inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
-
-decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaAudio#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-
-audioEmpty#586988d8 id:long = Audio;
-audio#427425e7 id:long access_hash:long user_id:int date:int duration:int size:int dc_id:int = Audio;
-
-documentEmpty#36f8c871 id:long = Document;
-document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
-
-help.support#17c6b5f6 phone_number:string user:User = help.Support;
-
----functions---
-
-invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
-
-invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
-
-auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
-auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
-auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
-auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
-auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
-auth.logOut#5717da40 = Bool;
-auth.resetAuthorizations#9fab0d1a = Bool;
-auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
-auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
-auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
-
-account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
-account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
-account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
-account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
-account.resetNotifySettings#db7e1747 = Bool;
-account.updateProfile#f0888d68 first_name:string last_name:string = User;
-account.updateStatus#6628562c offline:Bool = Bool;
-account.getWallPapers#c04cfac2 = Vector<WallPaper>;
-
-users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
-users.getFullUser#ca30a5b1 id:InputUser = UserFull;
-
-contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
-contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
-contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
-contacts.search#11f812d8 q:string limit:int = contacts.Found;
-contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
-contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
-contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
-contacts.block#332b49fc id:InputUser = Bool;
-contacts.unblock#e54100bd id:InputUser = Bool;
-contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
-
-messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
-messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
-messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
-messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
-messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
-messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
-messages.deleteMessages#14f2dd0a id:Vector<int> = Vector<int>;
-messages.restoreMessages#395f9d7e id:Vector<int> = Vector<int>;
-messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
-messages.setTyping#719839e9 peer:InputPeer typing:Bool = Bool;
-messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage;
-messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage;
-messages.forwardMessages#514cd10f peer:InputPeer id:Vector<int> = messages.StatedMessages;
-messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
-messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
-messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage;
-messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage;
-messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage;
-messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage;
-messages.createChat#419d9aee users:Vector<InputUser> title:string = messages.StatedMessage;
-
-updates.getState#edd4882a = updates.State;
-updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
-
-photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
-photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
-
-upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
-upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
-
-help.getConfig#c4f9186b = Config;
-help.getNearestDc#1fb33026 = NearestDc;
-help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
-help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
-help.getInviteText#a4a95186 lang_code:string = help.InviteText;
-
-photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
-
-messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage;
-messages.sendBroadcast#41bb0972 contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
-
-geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
-geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
-geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
-geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
-geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
-geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
-geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
-geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
-geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
-geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
-geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
-geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
-
-messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
-messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
-messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
-messages.discardEncryption#edd923c5 chat_id:int = Bool;
-messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
-messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
-messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
-messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
-
-upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
-
-initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
-
-help.getSupport#9cdf08cd = help.Support;
-
-invokeWithLayer12#dda60d3c {X:Type} query:!X = X;
diff --git a/libs/tgl/src/scheme15.tl b/libs/tgl/src/scheme15.tl
deleted file mode 100644
index 4e18fad21b..0000000000
--- a/libs/tgl/src/scheme15.tl
+++ /dev/null
@@ -1,522 +0,0 @@
-int ?= Int;
-long ?= Long;
-double ?= Double;
-string ?= String;
-
-bytes string = Bytes;
-
-boolFalse#bc799737 = Bool;
-boolTrue#997275b5 = Bool;
-
-vector#1cb5c415 {t:Type} # [ t ] = Vector t;
-
-error#c4b9f9bb code:int text:string = Error;
-
-null#56730bcc = Null;
-
-inputPeerEmpty#7f3b18ea = InputPeer;
-inputPeerSelf#7da07ec9 = InputPeer;
-inputPeerContact#1023dbe8 user_id:int = InputPeer;
-inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
-inputPeerChat#179be863 chat_id:int = InputPeer;
-
-inputUserEmpty#b98886cf = InputUser;
-inputUserSelf#f7c1b13f = InputUser;
-inputUserContact#86e94f65 user_id:int = InputUser;
-inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
-
-inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
-
-inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
-
-inputMediaEmpty#9664f57f = InputMedia;
-inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
-inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia;
-inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
-inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
-inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaVideo#7f023ae6 id:InputVideo = InputMedia;
-
-inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
-inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
-inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
-
-inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
-inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint;
-
-inputPhotoEmpty#1cd7bf0d = InputPhoto;
-inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
-
-inputVideoEmpty#5508ec75 = InputVideo;
-inputVideo#ee579652 id:long access_hash:long = InputVideo;
-
-inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
-inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
-
-inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
-inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
-
-inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
-
-peerUser#9db1bc6d user_id:int = Peer;
-peerChat#bad0e5bb chat_id:int = Peer;
-
-storage.fileUnknown#aa963b05 = storage.FileType;
-storage.fileJpeg#007efe0e = storage.FileType;
-storage.fileGif#cae1aadf = storage.FileType;
-storage.filePng#0a4f63c0 = storage.FileType;
-storage.filePdf#ae1e508d = storage.FileType;
-storage.fileMp3#528a0677 = storage.FileType;
-storage.fileMov#4b09ebbc = storage.FileType;
-storage.filePartial#40bc6f52 = storage.FileType;
-storage.fileMp4#b3cea0e4 = storage.FileType;
-storage.fileWebp#1081464c = storage.FileType;
-
-fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
-fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
-
-userEmpty#200250ba id:int = User;
-userSelf#720535ec id:int first_name:string last_name:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
-userContact#f2fb8319 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userRequest#22e8ceb0 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userForeign#5214c89d id:int first_name:string last_name:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
-userDeleted#b29ad7cc id:int first_name:string last_name:string = User;
-
-userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
-userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
-
-userStatusEmpty#09d05049 = UserStatus;
-userStatusOnline#edb93949 expires:int = UserStatus;
-userStatusOffline#008c703f was_online:int = UserStatus;
-
-chatEmpty#9ba2d800 id:int = Chat;
-chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
-chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
-
-chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
-
-chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
-
-chatParticipantsForbidden#0fd2bb8a chat_id:int = ChatParticipants;
-chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
-
-chatPhotoEmpty#37c1011c = ChatPhoto;
-chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
-
-messageEmpty#83e5de54 id:int = Message;
-message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
-messageForwarded#05f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
-messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message;
-
-messageMediaEmpty#3ded6320 = MessageMedia;
-messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
-messageMediaVideo#a2d24290 video:Video = MessageMedia;
-messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
-messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
-messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia;
-
-messageActionEmpty#b6aef7b0 = MessageAction;
-messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
-messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
-messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
-messageActionChatDeletePhoto#95e3fbef = MessageAction;
-messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
-messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
-
-dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
-
-photoEmpty#2331b22d id:long = Photo;
-photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-
-photoSizeEmpty#0e17e23c type:string = PhotoSize;
-photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
-photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
-
-videoEmpty#c10658a8 id:long = Video;
-video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-
-geoPointEmpty#1117dd5f = GeoPoint;
-geoPoint#2049d70c long:double lat:double = GeoPoint;
-
-auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone;
-
-auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
-
-auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
-
-inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
-inputNotifyUsers#193b4417 = InputNotifyPeer;
-inputNotifyChats#4a95e84e = InputNotifyPeer;
-inputNotifyAll#a429b886 = InputNotifyPeer;
-
-inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
-inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
-
-inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
-
-peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
-peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
-
-peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
-peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
-
-wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
-
-userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
-
-contact#f911c994 user_id:int mutual:Bool = Contact;
-
-importedContact#d0028438 user_id:int client_id:long = ImportedContact;
-
-contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
-
-contactFound#ea879f95 user_id:int = ContactFound;
-
-contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
-
-contactStatus#aa77b873 user_id:int expires:int = ContactStatus;
-
-chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
-
-contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink;
-contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink;
-contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink;
-
-contacts.myLinkEmpty#d22a1c60 = contacts.MyLink;
-contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink;
-contacts.myLinkContact#c240ebd9 = contacts.MyLink;
-
-contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link;
-
-contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
-contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
-
-contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
-
-contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-
-contacts.found#0566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
-
-contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
-
-messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-
-messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-messages.messagesSlice#0b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-
-messages.messageEmpty#3f4e0648 = messages.Message;
-messages.message#ff90c417 message:Message chats:Vector<Chat> users:Vector<User> = messages.Message;
-
-messages.statedMessages#969478bb messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessages;
-
-messages.statedMessage#d07ae726 message:Message chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessage;
-
-messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage;
-
-messages.chat#40e9002a chat:Chat users:Vector<User> = messages.Chat;
-
-messages.chats#8150cbd8 chats:Vector<Chat> users:Vector<User> = messages.Chats;
-
-messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-
-messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory;
-
-inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
-inputMessagesFilterPhotos#9609a51c = MessagesFilter;
-inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
-inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
-inputMessagesFilterDocument#9eddf188 = MessagesFilter;
-inputMessagesFilterAudio#cfc87522 = MessagesFilter;
-
-updateNewMessage#013abdb3 message:Message pts:int = Update;
-updateMessageID#4e90bfd6 id:int random_id:long = Update;
-updateReadMessages#c6649e31 messages:Vector<int> pts:int = Update;
-updateDeleteMessages#a92bfe26 messages:Vector<int> pts:int = Update;
-updateRestoreMessages#d15de04d messages:Vector<int> pts:int = Update;
-updateUserTyping#6baa8508 user_id:int = Update;
-updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update;
-updateChatParticipants#07761198 participants:ChatParticipants = Update;
-updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
-updateUserName#da22d9ad user_id:int first_name:string last_name:string = Update;
-updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
-updateContactRegistered#2575bbb9 user_id:int date:int = Update;
-updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update;
-updateActivation#6f690963 user_id:int = Update;
-updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
-
-updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
-
-updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
-updates.difference#00f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
-updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
-
-updatesTooLong#e317af7e = Updates;
-updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates;
-updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates;
-updateShort#78d4dec1 update:Update date:int = Updates;
-updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
-updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
-
-photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
-photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
-
-photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
-
-upload.file#096a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
-
-dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
-
-config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
-
-nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
-
-help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
-help.noAppUpdate#c45a6536 = help.AppUpdate;
-
-help.inviteText#18cb9f78 message:string = help.InviteText;
-
-messages.statedMessagesLinks#3e74f5c6 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
-
-messages.statedMessageLink#a9af2881 message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
-
-messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
-
-inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
-
-inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer;
-
-geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
-
-geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
-geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
-geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
-
-geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
-
-geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
-
-geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-
-messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
-messageActionGeoChatCheckin#0c7d53de = MessageAction;
-
-updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update;
-
-wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
-
-updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update;
-updateEncryptedChatTyping#1710f156 chat_id:int = Update;
-updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update;
-updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
-
-encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
-encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
-encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
-encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
-
-inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
-
-encryptedFileEmpty#c21f497e = EncryptedFile;
-encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
-
-inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
-inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
-inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
-
-inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
-
-encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
-encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
-
-decryptedMessageLayer#99a438cf layer:int message:DecryptedMessage = DecryptedMessageLayer;
-
-decryptedMessage#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
-decryptedMessageService#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
-
-decryptedMessageMediaEmpty#089f5c4a = DecryptedMessageMedia;
-decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaVideo#524a415d thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaGeoPoint#35480a59 lat:double long:double = DecryptedMessageMedia;
-decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
-
-decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction;
-
-messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
-messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
-
-messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
-messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
-
-inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
-
-inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
-
-updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
-updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
-updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
-
-inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
-inputMediaAudio#89938781 id:InputAudio = InputMedia;
-inputMediaUploadedDocument#34e794bd file:InputFile file_name:string mime_type:string = InputMedia;
-inputMediaUploadedThumbDocument#3e46de5d file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia;
-inputMediaDocument#d184e841 id:InputDocument = InputMedia;
-
-messageMediaDocument#2fda2204 document:Document = MessageMedia;
-messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
-
-inputAudioEmpty#d95adc84 = InputAudio;
-inputAudio#77d440ff id:long access_hash:long = InputAudio;
-
-inputDocumentEmpty#72f0eaae = InputDocument;
-inputDocument#18798952 id:long access_hash:long = InputDocument;
-
-inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
-inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
-
-decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-
-audioEmpty#586988d8 id:long = Audio;
-audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
-
-documentEmpty#36f8c871 id:long = Document;
-document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
-
-help.support#17c6b5f6 phone_number:string user:User = help.Support;
-
-decryptedMessageActionReadMessages#0c4f40be random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionDeleteMessages#65614304 random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction;
-decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction;
-
-notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
-notifyUsers#b4c83b4c = NotifyPeer;
-notifyChats#c007cec3 = NotifyPeer;
-notifyAll#74d07c60 = NotifyPeer;
-
-updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
-updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
-
-za int = Z 0;
-zb {n:#} int %(Vector int) = Z (n + 1);
-
----functions---
-
-invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
-
-invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
-
-auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
-auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
-auth.sendCall#03c51564 phone_number:string phone_code_hash:string = Bool;
-auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
-auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
-auth.logOut#5717da40 = Bool;
-auth.resetAuthorizations#9fab0d1a = Bool;
-auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
-auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
-auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
-
-account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
-account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
-account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
-account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
-account.resetNotifySettings#db7e1747 = Bool;
-account.updateProfile#f0888d68 first_name:string last_name:string = User;
-account.updateStatus#6628562c offline:Bool = Bool;
-account.getWallPapers#c04cfac2 = Vector<WallPaper>;
-
-users.getUsers#0d91a548 id:Vector<InputUser> = Vector<User>;
-users.getFullUser#ca30a5b1 id:InputUser = UserFull;
-
-contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
-contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
-contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
-contacts.search#11f812d8 q:string limit:int = contacts.Found;
-contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
-contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
-contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
-contacts.block#332b49fc id:InputUser = Bool;
-contacts.unblock#e54100bd id:InputUser = Bool;
-contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
-
-messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
-messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
-messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
-messages.search#07e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
-messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
-messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
-messages.deleteMessages#14f2dd0a id:Vector<int> = Vector<int>;
-messages.restoreMessages#395f9d7e id:Vector<int> = Vector<int>;
-messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
-messages.setTyping#719839e9 peer:InputPeer typing:Bool = Bool;
-messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage;
-messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage;
-messages.forwardMessages#514cd10f peer:InputPeer id:Vector<int> = messages.StatedMessages;
-messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
-messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
-messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage;
-messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage;
-messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage;
-messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage;
-messages.createChat#419d9aee users:Vector<InputUser> title:string = messages.StatedMessage;
-
-updates.getState#edd4882a = updates.State;
-updates.getDifference#0a041495 pts:int date:int qts:int = updates.Difference;
-
-photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
-photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
-
-upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
-upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
-
-help.getConfig#c4f9186b = Config;
-help.getNearestDc#1fb33026 = NearestDc;
-help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
-help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
-help.getInviteText#a4a95186 lang_code:string = help.InviteText;
-
-photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
-
-messages.forwardMessage#03f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage;
-messages.sendBroadcast#41bb0972 contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
-
-geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
-geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
-geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
-geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
-geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
-geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
-geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
-geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
-geochats.setTyping#08b8a729 peer:InputGeoChat typing:Bool = Bool;
-geochats.sendMessage#061b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
-geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
-geochats.createGeoChat#0e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
-
-messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
-messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
-messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
-messages.discardEncryption#edd923c5 chat_id:int = Bool;
-messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
-messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
-messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
-messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
-
-upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
-
-initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
-
-help.getSupport#9cdf08cd = help.Support;
-
-invokeWithLayer15#b4418b64 {X:Type} query:!X = X;
diff --git a/libs/tgl/src/scheme16.tl b/libs/tgl/src/scheme16.tl
deleted file mode 100644
index b1e1f196d8..0000000000
--- a/libs/tgl/src/scheme16.tl
+++ /dev/null
@@ -1,504 +0,0 @@
-int ?= Int;
-long ?= Long;
-double ?= Double;
-string ?= String;
-
-bytes string = Bytes;
-
-boolFalse#bc799737 = Bool;
-boolTrue#997275b5 = Bool;
-
-vector#1cb5c415 {t:Type} # [ t ] = Vector t;
-
-error#c4b9f9bb code:int text:string = Error;
-
-null#56730bcc = Null;
-
-inputPeerEmpty#7f3b18ea = InputPeer;
-inputPeerSelf#7da07ec9 = InputPeer;
-inputPeerContact#1023dbe8 user_id:int = InputPeer;
-inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
-inputPeerChat#179be863 chat_id:int = InputPeer;
-
-inputUserEmpty#b98886cf = InputUser;
-inputUserSelf#f7c1b13f = InputUser;
-inputUserContact#86e94f65 user_id:int = InputUser;
-inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
-
-inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
-
-inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
-
-inputMediaEmpty#9664f57f = InputMedia;
-inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
-inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia;
-inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
-inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
-inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaVideo#7f023ae6 id:InputVideo = InputMedia;
-
-inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
-inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
-inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
-
-inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
-inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint;
-
-inputPhotoEmpty#1cd7bf0d = InputPhoto;
-inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
-
-inputVideoEmpty#5508ec75 = InputVideo;
-inputVideo#ee579652 id:long access_hash:long = InputVideo;
-
-inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
-inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
-
-inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
-inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
-
-inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
-
-peerUser#9db1bc6d user_id:int = Peer;
-peerChat#bad0e5bb chat_id:int = Peer;
-
-storage.fileUnknown#aa963b05 = storage.FileType;
-storage.fileJpeg#7efe0e = storage.FileType;
-storage.fileGif#cae1aadf = storage.FileType;
-storage.filePng#a4f63c0 = storage.FileType;
-storage.filePdf#ae1e508d = storage.FileType;
-storage.fileMp3#528a0677 = storage.FileType;
-storage.fileMov#4b09ebbc = storage.FileType;
-storage.filePartial#40bc6f52 = storage.FileType;
-storage.fileMp4#b3cea0e4 = storage.FileType;
-storage.fileWebp#1081464c = storage.FileType;
-
-fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
-fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
-
-userEmpty#200250ba id:int = User;
-userSelf#720535ec id:int first_name:string last_name:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
-userContact#f2fb8319 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userRequest#22e8ceb0 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userForeign#5214c89d id:int first_name:string last_name:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
-userDeleted#b29ad7cc id:int first_name:string last_name:string = User;
-
-userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
-userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
-
-userStatusEmpty#9d05049 = UserStatus;
-userStatusOnline#edb93949 expires:int = UserStatus;
-userStatusOffline#8c703f was_online:int = UserStatus;
-
-chatEmpty#9ba2d800 id:int = Chat;
-chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
-chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
-
-chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
-
-chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
-
-chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
-chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
-
-chatPhotoEmpty#37c1011c = ChatPhoto;
-chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
-
-messageEmpty#83e5de54 id:int = Message;
-message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
-messageForwarded#5f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
-messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message;
-
-messageMediaEmpty#3ded6320 = MessageMedia;
-messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
-messageMediaVideo#a2d24290 video:Video = MessageMedia;
-messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
-messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
-messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia;
-
-messageActionEmpty#b6aef7b0 = MessageAction;
-messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
-messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
-messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
-messageActionChatDeletePhoto#95e3fbef = MessageAction;
-messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
-messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
-
-dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
-
-photoEmpty#2331b22d id:long = Photo;
-photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-
-photoSizeEmpty#e17e23c type:string = PhotoSize;
-photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
-photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
-
-videoEmpty#c10658a8 id:long = Video;
-video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-
-geoPointEmpty#1117dd5f = GeoPoint;
-geoPoint#2049d70c long:double lat:double = GeoPoint;
-
-auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone;
-
-auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
-
-auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
-
-inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
-inputNotifyUsers#193b4417 = InputNotifyPeer;
-inputNotifyChats#4a95e84e = InputNotifyPeer;
-inputNotifyAll#a429b886 = InputNotifyPeer;
-
-inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
-inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
-
-inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
-
-peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
-peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
-
-peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
-peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
-
-wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
-
-userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
-
-contact#f911c994 user_id:int mutual:Bool = Contact;
-
-importedContact#d0028438 user_id:int client_id:long = ImportedContact;
-
-contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
-
-contactFound#ea879f95 user_id:int = ContactFound;
-
-contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
-
-contactStatus#aa77b873 user_id:int expires:int = ContactStatus;
-
-chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
-
-contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink;
-contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink;
-contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink;
-
-contacts.myLinkEmpty#d22a1c60 = contacts.MyLink;
-contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink;
-contacts.myLinkContact#c240ebd9 = contacts.MyLink;
-
-contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link;
-
-contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
-contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
-
-contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
-
-contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-
-contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
-
-contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
-
-messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-
-messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-
-messages.messageEmpty#3f4e0648 = messages.Message;
-messages.message#ff90c417 message:Message chats:Vector<Chat> users:Vector<User> = messages.Message;
-
-messages.statedMessages#969478bb messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessages;
-
-messages.statedMessage#d07ae726 message:Message chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessage;
-
-messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage;
-
-messages.chat#40e9002a chat:Chat users:Vector<User> = messages.Chat;
-
-messages.chats#8150cbd8 chats:Vector<Chat> users:Vector<User> = messages.Chats;
-
-messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-
-messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory;
-
-inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
-inputMessagesFilterPhotos#9609a51c = MessagesFilter;
-inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
-inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
-inputMessagesFilterDocument#9eddf188 = MessagesFilter;
-inputMessagesFilterAudio#cfc87522 = MessagesFilter;
-
-updateNewMessage#13abdb3 message:Message pts:int = Update;
-updateMessageID#4e90bfd6 id:int random_id:long = Update;
-updateReadMessages#c6649e31 messages:Vector<int> pts:int = Update;
-updateDeleteMessages#a92bfe26 messages:Vector<int> pts:int = Update;
-updateRestoreMessages#d15de04d messages:Vector<int> pts:int = Update;
-updateUserTyping#6baa8508 user_id:int = Update;
-updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update;
-updateChatParticipants#7761198 participants:ChatParticipants = Update;
-updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
-updateUserName#da22d9ad user_id:int first_name:string last_name:string = Update;
-updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
-updateContactRegistered#2575bbb9 user_id:int date:int = Update;
-updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update;
-updateActivation#6f690963 user_id:int = Update;
-updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
-
-updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
-
-updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
-updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
-updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
-
-updatesTooLong#e317af7e = Updates;
-updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates;
-updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates;
-updateShort#78d4dec1 update:Update date:int = Updates;
-updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
-updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
-
-photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
-photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
-
-photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
-
-upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
-
-dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
-
-config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
-
-nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
-
-help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
-help.noAppUpdate#c45a6536 = help.AppUpdate;
-
-help.inviteText#18cb9f78 message:string = help.InviteText;
-
-messages.statedMessagesLinks#3e74f5c6 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
-
-messages.statedMessageLink#a9af2881 message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
-
-messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
-
-inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
-
-inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer;
-
-geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
-
-geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
-geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
-geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
-
-geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
-
-geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
-
-geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-
-messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
-messageActionGeoChatCheckin#c7d53de = MessageAction;
-
-updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update;
-
-wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
-
-updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update;
-updateEncryptedChatTyping#1710f156 chat_id:int = Update;
-updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update;
-updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
-
-encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
-encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
-encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
-encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
-
-inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
-
-encryptedFileEmpty#c21f497e = EncryptedFile;
-encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
-
-inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
-inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
-inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
-
-inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
-
-encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
-encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
-
-messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
-messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
-
-messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
-messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
-
-inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
-
-inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
-
-updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
-updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
-updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
-
-inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
-inputMediaAudio#89938781 id:InputAudio = InputMedia;
-inputMediaUploadedDocument#34e794bd file:InputFile file_name:string mime_type:string = InputMedia;
-inputMediaUploadedThumbDocument#3e46de5d file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia;
-inputMediaDocument#d184e841 id:InputDocument = InputMedia;
-
-messageMediaDocument#2fda2204 document:Document = MessageMedia;
-messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
-
-inputAudioEmpty#d95adc84 = InputAudio;
-inputAudio#77d440ff id:long access_hash:long = InputAudio;
-
-inputDocumentEmpty#72f0eaae = InputDocument;
-inputDocument#18798952 id:long access_hash:long = InputDocument;
-
-inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
-inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
-
-audioEmpty#586988d8 id:long = Audio;
-audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
-
-documentEmpty#36f8c871 id:long = Document;
-document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
-
-help.support#17c6b5f6 phone_number:string user:User = help.Support;
-
-notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
-notifyUsers#b4c83b4c = NotifyPeer;
-notifyChats#c007cec3 = NotifyPeer;
-notifyAll#74d07c60 = NotifyPeer;
-
-updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
-updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
-
-auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
----functions---
-
-invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
-
-invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
-
-auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
-auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
-auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
-auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
-auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
-auth.logOut#5717da40 = Bool;
-auth.resetAuthorizations#9fab0d1a = Bool;
-auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
-auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
-auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
-auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
-
-account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
-account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
-account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
-account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
-account.resetNotifySettings#db7e1747 = Bool;
-account.updateProfile#f0888d68 first_name:string last_name:string = User;
-account.updateStatus#6628562c offline:Bool = Bool;
-account.getWallPapers#c04cfac2 = Vector<WallPaper>;
-
-users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
-users.getFullUser#ca30a5b1 id:InputUser = UserFull;
-
-contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
-contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
-contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
-contacts.search#11f812d8 q:string limit:int = contacts.Found;
-contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
-contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
-contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
-contacts.block#332b49fc id:InputUser = Bool;
-contacts.unblock#e54100bd id:InputUser = Bool;
-contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
-contacts.exportCard#84e53737 = Vector<int>;
-contacts.importCard#4fe196fe export_card:Vector<int> = User;
-
-messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
-messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
-messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
-messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
-messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
-messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
-messages.deleteMessages#14f2dd0a id:Vector<int> = Vector<int>;
-messages.restoreMessages#395f9d7e id:Vector<int> = Vector<int>;
-messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
-messages.setTyping#719839e9 peer:InputPeer typing:Bool = Bool;
-messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage;
-messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage;
-messages.forwardMessages#514cd10f peer:InputPeer id:Vector<int> = messages.StatedMessages;
-messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
-messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
-messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage;
-messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage;
-messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage;
-messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage;
-messages.createChat#419d9aee users:Vector<InputUser> title:string = messages.StatedMessage;
-
-updates.getState#edd4882a = updates.State;
-updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
-
-photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
-photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
-
-upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
-upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
-
-help.getConfig#c4f9186b = Config;
-help.getNearestDc#1fb33026 = NearestDc;
-help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
-help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
-help.getInviteText#a4a95186 lang_code:string = help.InviteText;
-
-photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
-
-messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage;
-messages.sendBroadcast#41bb0972 contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
-
-geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
-geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
-geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
-geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
-geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
-geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
-geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
-geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
-geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
-geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
-geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
-geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
-
-messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
-messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
-messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
-messages.discardEncryption#edd923c5 chat_id:int = Bool;
-messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
-messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
-messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
-messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
-
-upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
-
-initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
-
-help.getSupport#9cdf08cd = help.Support;
-
-auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
-
-invokeWithLayer16#cf5f0987 {X:Type} query:!X = X;
diff --git a/libs/tgl/src/scheme17.tl b/libs/tgl/src/scheme17.tl
deleted file mode 100644
index c564155c19..0000000000
--- a/libs/tgl/src/scheme17.tl
+++ /dev/null
@@ -1,528 +0,0 @@
-int ?= Int;
-long ?= Long;
-double ?= Double;
-string ?= String;
-
-bytes string = Bytes;
-
-boolFalse#bc799737 = Bool;
-boolTrue#997275b5 = Bool;
-
-vector#1cb5c415 {t:Type} # [ t ] = Vector t;
-
-error#c4b9f9bb code:int text:string = Error;
-
-null#56730bcc = Null;
-
-inputPeerEmpty#7f3b18ea = InputPeer;
-inputPeerSelf#7da07ec9 = InputPeer;
-inputPeerContact#1023dbe8 user_id:int = InputPeer;
-inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
-inputPeerChat#179be863 chat_id:int = InputPeer;
-
-inputUserEmpty#b98886cf = InputUser;
-inputUserSelf#f7c1b13f = InputUser;
-inputUserContact#86e94f65 user_id:int = InputUser;
-inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
-
-inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
-
-inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
-
-inputMediaEmpty#9664f57f = InputMedia;
-inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
-inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia;
-inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
-inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
-inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaVideo#7f023ae6 id:InputVideo = InputMedia;
-
-inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
-inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
-inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
-
-inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
-inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint;
-
-inputPhotoEmpty#1cd7bf0d = InputPhoto;
-inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
-
-inputVideoEmpty#5508ec75 = InputVideo;
-inputVideo#ee579652 id:long access_hash:long = InputVideo;
-
-inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
-inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
-
-inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
-inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
-
-inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
-
-peerUser#9db1bc6d user_id:int = Peer;
-peerChat#bad0e5bb chat_id:int = Peer;
-
-storage.fileUnknown#aa963b05 = storage.FileType;
-storage.fileJpeg#7efe0e = storage.FileType;
-storage.fileGif#cae1aadf = storage.FileType;
-storage.filePng#a4f63c0 = storage.FileType;
-storage.filePdf#ae1e508d = storage.FileType;
-storage.fileMp3#528a0677 = storage.FileType;
-storage.fileMov#4b09ebbc = storage.FileType;
-storage.filePartial#40bc6f52 = storage.FileType;
-storage.fileMp4#b3cea0e4 = storage.FileType;
-storage.fileWebp#1081464c = storage.FileType;
-
-fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
-fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
-
-userEmpty#200250ba id:int = User;
-userSelf#720535ec id:int first_name:string last_name:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
-userContact#f2fb8319 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userRequest#22e8ceb0 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userForeign#5214c89d id:int first_name:string last_name:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
-userDeleted#b29ad7cc id:int first_name:string last_name:string = User;
-
-userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
-userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
-
-userStatusEmpty#9d05049 = UserStatus;
-userStatusOnline#edb93949 expires:int = UserStatus;
-userStatusOffline#8c703f was_online:int = UserStatus;
-
-chatEmpty#9ba2d800 id:int = Chat;
-chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
-chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
-
-chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
-
-chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
-
-chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
-chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
-
-chatPhotoEmpty#37c1011c = ChatPhoto;
-chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
-
-messageEmpty#83e5de54 id:int = Message;
-//message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
-//messageForwarded#5f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
-//messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message;
-
-messageMediaEmpty#3ded6320 = MessageMedia;
-messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
-messageMediaVideo#a2d24290 video:Video = MessageMedia;
-messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
-messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
-messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia;
-
-messageActionEmpty#b6aef7b0 = MessageAction;
-messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
-messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
-messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
-messageActionChatDeletePhoto#95e3fbef = MessageAction;
-messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
-messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
-
-dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
-
-photoEmpty#2331b22d id:long = Photo;
-photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-
-photoSizeEmpty#e17e23c type:string = PhotoSize;
-photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
-photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
-
-videoEmpty#c10658a8 id:long = Video;
-video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-
-geoPointEmpty#1117dd5f = GeoPoint;
-geoPoint#2049d70c long:double lat:double = GeoPoint;
-
-auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone;
-
-auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
-
-auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
-
-inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
-inputNotifyUsers#193b4417 = InputNotifyPeer;
-inputNotifyChats#4a95e84e = InputNotifyPeer;
-inputNotifyAll#a429b886 = InputNotifyPeer;
-
-inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
-inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
-
-inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
-
-peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
-peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
-
-peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
-peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
-
-wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
-
-userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
-
-contact#f911c994 user_id:int mutual:Bool = Contact;
-
-importedContact#d0028438 user_id:int client_id:long = ImportedContact;
-
-contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
-
-contactFound#ea879f95 user_id:int = ContactFound;
-
-contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
-
-contactStatus#aa77b873 user_id:int expires:int = ContactStatus;
-
-chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
-
-contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink;
-contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink;
-contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink;
-
-contacts.myLinkEmpty#d22a1c60 = contacts.MyLink;
-contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink;
-contacts.myLinkContact#c240ebd9 = contacts.MyLink;
-
-contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link;
-
-contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
-contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
-
-contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
-
-contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-
-contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
-
-contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
-
-messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-
-messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-
-messages.messageEmpty#3f4e0648 = messages.Message;
-messages.message#ff90c417 message:Message chats:Vector<Chat> users:Vector<User> = messages.Message;
-
-messages.statedMessages#969478bb messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessages;
-
-messages.statedMessage#d07ae726 message:Message chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessage;
-
-messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage;
-
-messages.chat#40e9002a chat:Chat users:Vector<User> = messages.Chat;
-
-messages.chats#8150cbd8 chats:Vector<Chat> users:Vector<User> = messages.Chats;
-
-messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-
-messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory;
-
-inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
-inputMessagesFilterPhotos#9609a51c = MessagesFilter;
-inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
-inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
-inputMessagesFilterDocument#9eddf188 = MessagesFilter;
-inputMessagesFilterAudio#cfc87522 = MessagesFilter;
-
-updateNewMessage#13abdb3 message:Message pts:int = Update;
-updateMessageID#4e90bfd6 id:int random_id:long = Update;
-updateReadMessages#c6649e31 messages:Vector<int> pts:int = Update;
-updateDeleteMessages#a92bfe26 messages:Vector<int> pts:int = Update;
-updateRestoreMessages#d15de04d messages:Vector<int> pts:int = Update;
-//updateUserTyping#6baa8508 user_id:int = Update;
-//updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update;
-updateChatParticipants#7761198 participants:ChatParticipants = Update;
-updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
-updateUserName#da22d9ad user_id:int first_name:string last_name:string = Update;
-updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
-updateContactRegistered#2575bbb9 user_id:int date:int = Update;
-updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update;
-updateActivation#6f690963 user_id:int = Update;
-updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
-
-updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
-
-updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
-updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
-updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
-
-updatesTooLong#e317af7e = Updates;
-updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates;
-updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates;
-updateShort#78d4dec1 update:Update date:int = Updates;
-updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
-updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
-
-photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
-photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
-
-photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
-
-upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
-
-dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
-
-config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
-
-nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
-
-help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
-help.noAppUpdate#c45a6536 = help.AppUpdate;
-
-help.inviteText#18cb9f78 message:string = help.InviteText;
-
-messages.statedMessagesLinks#3e74f5c6 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
-
-messages.statedMessageLink#a9af2881 message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
-
-messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
-
-inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
-
-inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer;
-
-geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
-
-geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
-geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
-geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
-
-geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
-
-geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
-
-geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-
-messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
-messageActionGeoChatCheckin#c7d53de = MessageAction;
-
-updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update;
-
-wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
-
-updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update;
-updateEncryptedChatTyping#1710f156 chat_id:int = Update;
-updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update;
-updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
-
-encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
-encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
-encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
-encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
-
-inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
-
-encryptedFileEmpty#c21f497e = EncryptedFile;
-encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
-
-inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
-inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
-inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
-
-inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
-
-encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
-encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
-
-messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
-messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
-
-messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
-messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
-
-inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
-
-inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
-
-updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
-updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
-updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
-
-inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
-inputMediaAudio#89938781 id:InputAudio = InputMedia;
-inputMediaUploadedDocument#34e794bd file:InputFile file_name:string mime_type:string = InputMedia;
-inputMediaUploadedThumbDocument#3e46de5d file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia;
-inputMediaDocument#d184e841 id:InputDocument = InputMedia;
-
-messageMediaDocument#2fda2204 document:Document = MessageMedia;
-messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
-
-inputAudioEmpty#d95adc84 = InputAudio;
-inputAudio#77d440ff id:long access_hash:long = InputAudio;
-
-inputDocumentEmpty#72f0eaae = InputDocument;
-inputDocument#18798952 id:long access_hash:long = InputDocument;
-
-inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
-inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
-
-audioEmpty#586988d8 id:long = Audio;
-audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
-
-documentEmpty#36f8c871 id:long = Document;
-document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
-
-help.support#17c6b5f6 phone_number:string user:User = help.Support;
-
-notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
-notifyUsers#b4c83b4c = NotifyPeer;
-notifyChats#c007cec3 = NotifyPeer;
-notifyAll#74d07c60 = NotifyPeer;
-
-updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
-updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
-
-auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
-updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
-
-
-message#567699b3 flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
-messageForwarded#a367e716 flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
-messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
-
-
-sendMessageTypingAction#16bf744e = SendMessageAction;
-sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
-sendMessageRecordVideoAction#a187d66f = SendMessageAction;
-sendMessageUploadVideoAction#92042ff7 = SendMessageAction;
-sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
-sendMessageUploadAudioAction#e6ac8a6f = SendMessageAction;
-sendMessageUploadPhotoAction#990a3c1a = SendMessageAction;
-sendMessageUploadDocumentAction#8faee98e = SendMessageAction;
-sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
-sendMessageChooseContactAction#628cbc6f = SendMessageAction;
-
----functions---
-
-invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
-
-invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
-
-auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
-auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
-auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
-auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
-auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
-auth.logOut#5717da40 = Bool;
-auth.resetAuthorizations#9fab0d1a = Bool;
-auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
-auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
-auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
-auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
-
-account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
-account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
-account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
-account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
-account.resetNotifySettings#db7e1747 = Bool;
-account.updateProfile#f0888d68 first_name:string last_name:string = User;
-account.updateStatus#6628562c offline:Bool = Bool;
-account.getWallPapers#c04cfac2 = Vector<WallPaper>;
-
-users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
-users.getFullUser#ca30a5b1 id:InputUser = UserFull;
-
-contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
-contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
-contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
-contacts.search#11f812d8 q:string limit:int = contacts.Found;
-contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
-contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
-contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
-contacts.block#332b49fc id:InputUser = Bool;
-contacts.unblock#e54100bd id:InputUser = Bool;
-contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
-contacts.exportCard#84e53737 = Vector<int>;
-contacts.importCard#4fe196fe export_card:Vector<int> = User;
-
-messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
-messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
-messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
-messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
-messages.readHistory#eed884c6 peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory;
-messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
-messages.deleteMessages#14f2dd0a id:Vector<int> = Vector<int>;
-messages.restoreMessages#395f9d7e id:Vector<int> = Vector<int>;
-messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
-messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
-messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage;
-messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage;
-messages.forwardMessages#514cd10f peer:InputPeer id:Vector<int> = messages.StatedMessages;
-messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
-messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
-messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage;
-messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage;
-messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage;
-messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage;
-messages.createChat#419d9aee users:Vector<InputUser> title:string = messages.StatedMessage;
-
-updates.getState#edd4882a = updates.State;
-updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
-
-photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
-photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
-
-upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
-upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
-
-help.getConfig#c4f9186b = Config;
-help.getNearestDc#1fb33026 = NearestDc;
-help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
-help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
-help.getInviteText#a4a95186 lang_code:string = help.InviteText;
-
-photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
-
-messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage;
-messages.sendBroadcast#41bb0972 contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
-
-geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
-geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
-geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
-geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
-geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
-geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
-geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
-geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
-geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
-geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
-geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
-geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
-
-messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
-messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
-messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
-messages.discardEncryption#edd923c5 chat_id:int = Bool;
-messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
-messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
-messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
-messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
-
-upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
-
-initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
-
-help.getSupport#9cdf08cd = help.Support;
-
-auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
-
-messages.readMessageContents id:Vector<int> = Vector<int>;
-
-
-invokeWithLayer17#50858a19 {X:Type} query:!X = X;
-
diff --git a/libs/tgl/src/scheme18.tl b/libs/tgl/src/scheme18.tl
deleted file mode 100644
index 6b7fdd5fc4..0000000000
--- a/libs/tgl/src/scheme18.tl
+++ /dev/null
@@ -1,535 +0,0 @@
-int ?= Int;
-long ?= Long;
-double ?= Double;
-string ?= String;
-
-bytes string = Bytes;
-
-boolFalse#bc799737 = Bool;
-boolTrue#997275b5 = Bool;
-
-vector#1cb5c415 {t:Type} # [ t ] = Vector t;
-
-error#c4b9f9bb code:int text:string = Error;
-
-null#56730bcc = Null;
-
-inputPeerEmpty#7f3b18ea = InputPeer;
-inputPeerSelf#7da07ec9 = InputPeer;
-inputPeerContact#1023dbe8 user_id:int = InputPeer;
-inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
-inputPeerChat#179be863 chat_id:int = InputPeer;
-
-inputUserEmpty#b98886cf = InputUser;
-inputUserSelf#f7c1b13f = InputUser;
-inputUserContact#86e94f65 user_id:int = InputUser;
-inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
-
-inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
-
-inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
-
-inputMediaEmpty#9664f57f = InputMedia;
-inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
-inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia;
-inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
-inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
-inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaVideo#7f023ae6 id:InputVideo = InputMedia;
-
-inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
-inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
-inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
-
-inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
-inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint;
-
-inputPhotoEmpty#1cd7bf0d = InputPhoto;
-inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
-
-inputVideoEmpty#5508ec75 = InputVideo;
-inputVideo#ee579652 id:long access_hash:long = InputVideo;
-
-inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
-inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
-
-inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
-inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
-
-inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
-
-peerUser#9db1bc6d user_id:int = Peer;
-peerChat#bad0e5bb chat_id:int = Peer;
-
-storage.fileUnknown#aa963b05 = storage.FileType;
-storage.fileJpeg#7efe0e = storage.FileType;
-storage.fileGif#cae1aadf = storage.FileType;
-storage.filePng#a4f63c0 = storage.FileType;
-storage.filePdf#ae1e508d = storage.FileType;
-storage.fileMp3#528a0677 = storage.FileType;
-storage.fileMov#4b09ebbc = storage.FileType;
-storage.filePartial#40bc6f52 = storage.FileType;
-storage.fileMp4#b3cea0e4 = storage.FileType;
-storage.fileWebp#1081464c = storage.FileType;
-
-fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
-fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
-
-userEmpty#200250ba id:int = User;
-userSelf#7007b451 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
-userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
-userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User;
-
-
-userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
-userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
-
-userStatusEmpty#9d05049 = UserStatus;
-userStatusOnline#edb93949 expires:int = UserStatus;
-userStatusOffline#8c703f was_online:int = UserStatus;
-
-chatEmpty#9ba2d800 id:int = Chat;
-chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
-chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
-
-chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
-
-chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
-
-chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
-chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
-
-chatPhotoEmpty#37c1011c = ChatPhoto;
-chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
-
-messageEmpty#83e5de54 id:int = Message;
-//message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
-//messageForwarded#5f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
-//messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message;
-
-messageMediaEmpty#3ded6320 = MessageMedia;
-messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
-messageMediaVideo#a2d24290 video:Video = MessageMedia;
-messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
-messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
-messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia;
-
-messageActionEmpty#b6aef7b0 = MessageAction;
-messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
-messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
-messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
-messageActionChatDeletePhoto#95e3fbef = MessageAction;
-messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
-messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
-
-dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
-
-photoEmpty#2331b22d id:long = Photo;
-photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-
-photoSizeEmpty#e17e23c type:string = PhotoSize;
-photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
-photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
-
-videoEmpty#c10658a8 id:long = Video;
-video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-
-geoPointEmpty#1117dd5f = GeoPoint;
-geoPoint#2049d70c long:double lat:double = GeoPoint;
-
-auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone;
-
-auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
-
-auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
-
-inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
-inputNotifyUsers#193b4417 = InputNotifyPeer;
-inputNotifyChats#4a95e84e = InputNotifyPeer;
-inputNotifyAll#a429b886 = InputNotifyPeer;
-
-inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
-inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
-
-inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
-
-peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
-peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
-
-peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
-peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
-
-wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
-
-userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
-
-contact#f911c994 user_id:int mutual:Bool = Contact;
-
-importedContact#d0028438 user_id:int client_id:long = ImportedContact;
-
-contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
-
-contactFound#ea879f95 user_id:int = ContactFound;
-
-contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
-
-contactStatus#aa77b873 user_id:int expires:int = ContactStatus;
-
-chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
-
-contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink;
-contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink;
-contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink;
-
-contacts.myLinkEmpty#d22a1c60 = contacts.MyLink;
-contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink;
-contacts.myLinkContact#c240ebd9 = contacts.MyLink;
-
-contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link;
-
-contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
-contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
-
-contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
-
-contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-
-contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
-
-contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
-
-messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-
-messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-
-messages.messageEmpty#3f4e0648 = messages.Message;
-messages.message#ff90c417 message:Message chats:Vector<Chat> users:Vector<User> = messages.Message;
-
-messages.statedMessages#969478bb messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessages;
-
-messages.statedMessage#d07ae726 message:Message chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessage;
-
-messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage;
-
-messages.chat#40e9002a chat:Chat users:Vector<User> = messages.Chat;
-
-messages.chats#8150cbd8 chats:Vector<Chat> users:Vector<User> = messages.Chats;
-
-messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-
-messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory;
-
-inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
-inputMessagesFilterPhotos#9609a51c = MessagesFilter;
-inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
-inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
-inputMessagesFilterDocument#9eddf188 = MessagesFilter;
-inputMessagesFilterAudio#cfc87522 = MessagesFilter;
-
-updateNewMessage#13abdb3 message:Message pts:int = Update;
-updateMessageID#4e90bfd6 id:int random_id:long = Update;
-updateReadMessages#c6649e31 messages:Vector<int> pts:int = Update;
-updateDeleteMessages#a92bfe26 messages:Vector<int> pts:int = Update;
-updateRestoreMessages#d15de04d messages:Vector<int> pts:int = Update;
-//updateUserTyping#6baa8508 user_id:int = Update;
-//updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update;
-updateChatParticipants#7761198 participants:ChatParticipants = Update;
-updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
-updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
-updateContactRegistered#2575bbb9 user_id:int date:int = Update;
-updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update;
-updateActivation#6f690963 user_id:int = Update;
-updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
-
-updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
-
-updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
-updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
-updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
-
-updatesTooLong#e317af7e = Updates;
-updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates;
-updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates;
-updateShort#78d4dec1 update:Update date:int = Updates;
-updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
-updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
-
-photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
-photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
-
-photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
-
-upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
-
-dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
-
-config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
-
-nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
-
-help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
-help.noAppUpdate#c45a6536 = help.AppUpdate;
-
-help.inviteText#18cb9f78 message:string = help.InviteText;
-
-messages.statedMessagesLinks#3e74f5c6 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
-
-messages.statedMessageLink#a9af2881 message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
-
-messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
-
-inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
-
-inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer;
-
-geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
-
-geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
-geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
-geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
-
-geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
-
-geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
-
-geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-
-messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
-messageActionGeoChatCheckin#c7d53de = MessageAction;
-
-updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update;
-
-wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
-
-updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update;
-updateEncryptedChatTyping#1710f156 chat_id:int = Update;
-updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update;
-updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
-
-encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
-encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
-encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
-encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
-
-inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
-
-encryptedFileEmpty#c21f497e = EncryptedFile;
-encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
-
-inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
-inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
-inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
-
-inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
-
-encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
-encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
-
-messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
-messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
-
-messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
-messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
-
-inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
-
-inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
-
-updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
-updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
-updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
-
-inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
-inputMediaAudio#89938781 id:InputAudio = InputMedia;
-inputMediaUploadedDocument#34e794bd file:InputFile file_name:string mime_type:string = InputMedia;
-inputMediaUploadedThumbDocument#3e46de5d file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia;
-inputMediaDocument#d184e841 id:InputDocument = InputMedia;
-
-messageMediaDocument#2fda2204 document:Document = MessageMedia;
-messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
-
-inputAudioEmpty#d95adc84 = InputAudio;
-inputAudio#77d440ff id:long access_hash:long = InputAudio;
-
-inputDocumentEmpty#72f0eaae = InputDocument;
-inputDocument#18798952 id:long access_hash:long = InputDocument;
-
-inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
-inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
-
-audioEmpty#586988d8 id:long = Audio;
-audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
-
-documentEmpty#36f8c871 id:long = Document;
-document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
-
-help.support#17c6b5f6 phone_number:string user:User = help.Support;
-
-notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
-notifyUsers#b4c83b4c = NotifyPeer;
-notifyChats#c007cec3 = NotifyPeer;
-notifyAll#74d07c60 = NotifyPeer;
-
-updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
-updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
-
-auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
-updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
-
-updateUserName user_id:int first_name:string last_name:string username:string = Update;
-updateServiceNotification type:string message:string media:MessageMedia popup:Bool = Update;
-
-message#567699b3 flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
-messageForwarded#a367e716 flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
-messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
-
-
-sendMessageTypingAction#16bf744e = SendMessageAction;
-sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
-sendMessageRecordVideoAction#a187d66f = SendMessageAction;
-sendMessageUploadVideoAction#92042ff7 = SendMessageAction;
-sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
-sendMessageUploadAudioAction#e6ac8a6f = SendMessageAction;
-sendMessageUploadPhotoAction#990a3c1a = SendMessageAction;
-sendMessageUploadDocumentAction#8faee98e = SendMessageAction;
-sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
-sendMessageChooseContactAction#628cbc6f = SendMessageAction;
-
----functions---
-
-invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
-
-invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
-
-auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
-auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
-auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
-auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
-auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
-auth.logOut#5717da40 = Bool;
-auth.resetAuthorizations#9fab0d1a = Bool;
-auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
-auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
-auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
-auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
-
-account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
-account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
-account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
-account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
-account.resetNotifySettings#db7e1747 = Bool;
-account.updateProfile#f0888d68 first_name:string last_name:string = User;
-account.updateStatus#6628562c offline:Bool = Bool;
-account.getWallPapers#c04cfac2 = Vector<WallPaper>;
-
-users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
-users.getFullUser#ca30a5b1 id:InputUser = UserFull;
-
-contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
-contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
-contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
-contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
-contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
-contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
-contacts.block#332b49fc id:InputUser = Bool;
-contacts.unblock#e54100bd id:InputUser = Bool;
-contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
-contacts.exportCard#84e53737 = Vector<int>;
-contacts.importCard#4fe196fe export_card:Vector<int> = User;
-
-messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
-messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
-messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
-messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
-messages.readHistory#eed884c6 peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory;
-messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
-messages.deleteMessages#14f2dd0a id:Vector<int> = Vector<int>;
-messages.restoreMessages#395f9d7e id:Vector<int> = Vector<int>;
-messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
-messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
-messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage;
-messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage;
-messages.forwardMessages#514cd10f peer:InputPeer id:Vector<int> = messages.StatedMessages;
-messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
-messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
-messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage;
-messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage;
-messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage;
-messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage;
-messages.createChat#419d9aee users:Vector<InputUser> title:string = messages.StatedMessage;
-
-updates.getState#edd4882a = updates.State;
-updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
-
-photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
-photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
-
-upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
-upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
-
-help.getConfig#c4f9186b = Config;
-help.getNearestDc#1fb33026 = NearestDc;
-help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
-help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
-help.getInviteText#a4a95186 lang_code:string = help.InviteText;
-
-photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
-
-messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage;
-messages.sendBroadcast#41bb0972 contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
-
-geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
-geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
-geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
-geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
-geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
-geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
-geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
-geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
-geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
-geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
-geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
-geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
-
-messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
-messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
-messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
-messages.discardEncryption#edd923c5 chat_id:int = Bool;
-messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
-messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
-messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
-messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
-
-upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
-
-initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
-
-help.getSupport#9cdf08cd = help.Support;
-
-auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
-
-messages.readMessageContents id:Vector<int> = Vector<int>;
-
-
-account.checkUsername username:string = Bool;
-account.updateUsername username:string = User;
-
-contacts.search q:string limit:int = contacts.Found;
-
-//invokeWithLayer18 {X:Type} query:!X = X;
-invokeWithLayer18#1c900537 {X:Type} query:!X = X;
-
diff --git a/libs/tgl/src/scheme19.tl b/libs/tgl/src/scheme19.tl
deleted file mode 100644
index 732093a02a..0000000000
--- a/libs/tgl/src/scheme19.tl
+++ /dev/null
@@ -1,596 +0,0 @@
-int ?= Int;
-long ?= Long;
-double ?= Double;
-string ?= String;
-
-bytes string = Bytes;
-
-boolFalse#bc799737 = Bool;
-boolTrue#997275b5 = Bool;
-
-int128 long long = Int128;
-int256 long long long long = Int256;
-
-vector#1cb5c415 {t:Type} # [ t ] = Vector t;
-
-error#c4b9f9bb code:int text:string = Error;
-
-null#56730bcc = Null;
-
-inputPeerEmpty#7f3b18ea = InputPeer;
-inputPeerSelf#7da07ec9 = InputPeer;
-inputPeerContact#1023dbe8 user_id:int = InputPeer;
-inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
-inputPeerChat#179be863 chat_id:int = InputPeer;
-
-inputUserEmpty#b98886cf = InputUser;
-inputUserSelf#f7c1b13f = InputUser;
-inputUserContact#86e94f65 user_id:int = InputUser;
-inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
-
-inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
-
-inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
-
-inputMediaEmpty#9664f57f = InputMedia;
-inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
-inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia;
-inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
-inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
-inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaVideo#7f023ae6 id:InputVideo = InputMedia;
-
-inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
-inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
-inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
-
-inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
-inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint;
-
-inputPhotoEmpty#1cd7bf0d = InputPhoto;
-inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
-
-inputVideoEmpty#5508ec75 = InputVideo;
-inputVideo#ee579652 id:long access_hash:long = InputVideo;
-
-inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
-inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
-
-inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
-inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
-
-inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
-
-peerUser#9db1bc6d user_id:int = Peer;
-peerChat#bad0e5bb chat_id:int = Peer;
-
-storage.fileUnknown#aa963b05 = storage.FileType;
-storage.fileJpeg#7efe0e = storage.FileType;
-storage.fileGif#cae1aadf = storage.FileType;
-storage.filePng#a4f63c0 = storage.FileType;
-storage.filePdf#ae1e508d = storage.FileType;
-storage.fileMp3#528a0677 = storage.FileType;
-storage.fileMov#4b09ebbc = storage.FileType;
-storage.filePartial#40bc6f52 = storage.FileType;
-storage.fileMp4#b3cea0e4 = storage.FileType;
-storage.fileWebp#1081464c = storage.FileType;
-
-fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
-fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
-
-userEmpty#200250ba id:int = User;
-userSelf#7007b451 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
-userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
-userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User;
-
-userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
-userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
-
-userStatusEmpty#9d05049 = UserStatus;
-userStatusOnline#edb93949 expires:int = UserStatus;
-userStatusOffline#8c703f was_online:int = UserStatus;
-
-chatEmpty#9ba2d800 id:int = Chat;
-chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
-chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
-
-chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
-
-chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
-
-chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
-chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
-
-chatPhotoEmpty#37c1011c = ChatPhoto;
-chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
-
-messageEmpty#83e5de54 id:int = Message;
-message#567699b3 flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
-messageForwarded#a367e716 flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
-messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
-
-messageMediaEmpty#3ded6320 = MessageMedia;
-messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
-messageMediaVideo#a2d24290 video:Video = MessageMedia;
-messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
-messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
-messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia;
-
-messageActionEmpty#b6aef7b0 = MessageAction;
-messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
-messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
-messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
-messageActionChatDeletePhoto#95e3fbef = MessageAction;
-messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
-messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
-
-dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
-
-photoEmpty#2331b22d id:long = Photo;
-photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-
-photoSizeEmpty#e17e23c type:string = PhotoSize;
-photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
-photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
-
-videoEmpty#c10658a8 id:long = Video;
-video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-
-geoPointEmpty#1117dd5f = GeoPoint;
-geoPoint#2049d70c long:double lat:double = GeoPoint;
-
-auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone;
-
-auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
-
-auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
-
-inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
-inputNotifyUsers#193b4417 = InputNotifyPeer;
-inputNotifyChats#4a95e84e = InputNotifyPeer;
-inputNotifyAll#a429b886 = InputNotifyPeer;
-
-inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
-inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
-
-inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
-
-peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
-peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
-
-peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
-peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
-
-wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
-
-userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
-
-contact#f911c994 user_id:int mutual:Bool = Contact;
-
-importedContact#d0028438 user_id:int client_id:long = ImportedContact;
-
-contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
-
-contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
-
-contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
-
-chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
-
-contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink;
-contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink;
-contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink;
-
-contacts.myLinkEmpty#d22a1c60 = contacts.MyLink;
-contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink;
-contacts.myLinkContact#c240ebd9 = contacts.MyLink;
-
-contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link;
-
-contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
-contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
-
-contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
-
-contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-
-contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
-
-messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-
-messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-
-messages.messageEmpty#3f4e0648 = messages.Message;
-messages.message#ff90c417 message:Message chats:Vector<Chat> users:Vector<User> = messages.Message;
-
-messages.statedMessages#969478bb messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessages;
-
-messages.statedMessage#d07ae726 message:Message chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessage;
-
-messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage;
-
-messages.chat#40e9002a chat:Chat users:Vector<User> = messages.Chat;
-
-messages.chats#8150cbd8 chats:Vector<Chat> users:Vector<User> = messages.Chats;
-
-messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-
-messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory;
-
-inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
-inputMessagesFilterPhotos#9609a51c = MessagesFilter;
-inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
-inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
-inputMessagesFilterDocument#9eddf188 = MessagesFilter;
-inputMessagesFilterAudio#cfc87522 = MessagesFilter;
-
-updateNewMessage#13abdb3 message:Message pts:int = Update;
-updateMessageID#4e90bfd6 id:int random_id:long = Update;
-updateReadMessages#c6649e31 messages:Vector<int> pts:int = Update;
-updateDeleteMessages#a92bfe26 messages:Vector<int> pts:int = Update;
-updateRestoreMessages#d15de04d messages:Vector<int> pts:int = Update;
-updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
-updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
-updateChatParticipants#7761198 participants:ChatParticipants = Update;
-updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
-updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update;
-updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
-updateContactRegistered#2575bbb9 user_id:int date:int = Update;
-updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update;
-updateActivation#6f690963 user_id:int = Update;
-updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
-
-updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
-
-updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
-updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
-updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
-
-updatesTooLong#e317af7e = Updates;
-updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates;
-updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates;
-updateShort#78d4dec1 update:Update date:int = Updates;
-updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
-updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
-
-photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
-photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
-
-photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
-
-upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
-
-dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
-
-config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
-
-nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
-
-help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
-help.noAppUpdate#c45a6536 = help.AppUpdate;
-
-help.inviteText#18cb9f78 message:string = help.InviteText;
-
-messages.statedMessagesLinks#3e74f5c6 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
-
-messages.statedMessageLink#a9af2881 message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
-
-messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
-
-inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
-
-inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer;
-
-geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
-
-geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
-geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
-geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
-
-geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
-
-geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
-
-geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-
-messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
-messageActionGeoChatCheckin#c7d53de = MessageAction;
-
-updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update;
-
-wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
-
-updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update;
-updateEncryptedChatTyping#1710f156 chat_id:int = Update;
-updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update;
-updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
-
-encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
-encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
-encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
-encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
-
-inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
-
-encryptedFileEmpty#c21f497e = EncryptedFile;
-encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
-
-inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
-inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
-inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
-
-inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
-
-encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
-encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
-
-messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
-messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
-
-messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
-messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
-
-inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
-
-inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
-
-updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
-updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
-updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
-
-inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
-inputMediaAudio#89938781 id:InputAudio = InputMedia;
-inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-inputMediaDocument#d184e841 id:InputDocument = InputMedia;
-
-messageMediaDocument#2fda2204 document:Document = MessageMedia;
-messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
-
-inputAudioEmpty#d95adc84 = InputAudio;
-inputAudio#77d440ff id:long access_hash:long = InputAudio;
-
-inputDocumentEmpty#72f0eaae = InputDocument;
-inputDocument#18798952 id:long access_hash:long = InputDocument;
-
-inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
-inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
-
-audioEmpty#586988d8 id:long = Audio;
-audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
-
-documentEmpty#36f8c871 id:long = Document;
-document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
-document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
-
-help.support#17c6b5f6 phone_number:string user:User = help.Support;
-
-notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
-notifyUsers#b4c83b4c = NotifyPeer;
-notifyChats#c007cec3 = NotifyPeer;
-notifyAll#74d07c60 = NotifyPeer;
-
-updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
-updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
-
-auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-sendMessageTypingAction#16bf744e = SendMessageAction;
-sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
-sendMessageRecordVideoAction#a187d66f = SendMessageAction;
-sendMessageUploadVideoAction#92042ff7 = SendMessageAction;
-sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
-sendMessageUploadAudioAction#e6ac8a6f = SendMessageAction;
-sendMessageUploadPhotoAction#990a3c1a = SendMessageAction;
-sendMessageUploadDocumentAction#8faee98e = SendMessageAction;
-sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
-sendMessageChooseContactAction#628cbc6f = SendMessageAction;
-
-contactFound#ea879f95 user_id:int = ContactFound;
-
-contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
-
-updateServiceNotification#382dd3e4 type:string message:string media:MessageMedia popup:Bool = Update;
-
-userStatusRecently#e26f42f1 = UserStatus;
-userStatusLastWeek#7bf09fc = UserStatus;
-userStatusLastMonth#77ebc742 = UserStatus;
-
-updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
-
-inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
-
-privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
-
-inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
-inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
-inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
-inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
-inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
-inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
-
-privacyValueAllowContacts#fffe1bac = PrivacyRule;
-privacyValueAllowAll#65427b82 = PrivacyRule;
-privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
-privacyValueDisallowContacts#f888fa1a = PrivacyRule;
-privacyValueDisallowAll#8b73e763 = PrivacyRule;
-privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule;
-
-account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
-
-accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
-
-account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
-
-updateUserPhone#12b9417b user_id:int phone:string = Update;
-
-account.noPassword#5770e7a9 new_salt:bytes = account.Password;
-account.password#739e5f72 current_salt:bytes new_salt:bytes hint:string = account.Password;
-
-documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
-documentAttributeAnimated#11b58939 = DocumentAttribute;
-documentAttributeSticker#fb0a5727 = DocumentAttribute;
-documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
-documentAttributeAudio#51448e5 duration:int = DocumentAttribute;
-documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
-
-messages.stickersNotModified#f1749a22 = messages.Stickers;
-messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
-
-stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
-
-messages.allStickersNotModified#e86602c3 = messages.AllStickers;
-messages.allStickers#dcef3102 hash:string packs:Vector<StickerPack> documents:Vector<Document> = messages.AllStickers;
-
----functions---
-
-invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
-
-invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
-
-auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
-auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
-auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
-auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
-auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
-auth.logOut#5717da40 = Bool;
-auth.resetAuthorizations#9fab0d1a = Bool;
-auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
-auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
-auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
-auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
-
-account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
-account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
-account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
-account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
-account.resetNotifySettings#db7e1747 = Bool;
-account.updateProfile#f0888d68 first_name:string last_name:string = User;
-account.updateStatus#6628562c offline:Bool = Bool;
-account.getWallPapers#c04cfac2 = Vector<WallPaper>;
-
-users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
-users.getFullUser#ca30a5b1 id:InputUser = UserFull;
-
-contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
-contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
-contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
-contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
-contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
-contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
-contacts.block#332b49fc id:InputUser = Bool;
-contacts.unblock#e54100bd id:InputUser = Bool;
-contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
-contacts.exportCard#84e53737 = Vector<int>;
-contacts.importCard#4fe196fe export_card:Vector<int> = User;
-
-messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
-messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
-messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
-messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
-messages.readHistory#eed884c6 peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory;
-messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
-messages.deleteMessages#14f2dd0a id:Vector<int> = Vector<int>;
-messages.restoreMessages#395f9d7e id:Vector<int> = Vector<int>;
-messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
-messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
-messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage;
-messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage;
-messages.forwardMessages#514cd10f peer:InputPeer id:Vector<int> = messages.StatedMessages;
-messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
-messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
-messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage;
-messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage;
-messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage;
-messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage;
-messages.createChat#419d9aee users:Vector<InputUser> title:string = messages.StatedMessage;
-
-updates.getState#edd4882a = updates.State;
-updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
-
-photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
-photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
-photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
-
-upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
-upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
-
-help.getConfig#c4f9186b = Config;
-help.getNearestDc#1fb33026 = NearestDc;
-help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
-help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
-help.getInviteText#a4a95186 lang_code:string = help.InviteText;
-
-photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
-
-messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage;
-messages.sendBroadcast#41bb0972 contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
-
-geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
-geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
-geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
-geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
-geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
-geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
-geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
-geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
-geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
-geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
-geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
-geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
-
-messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
-messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
-messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
-messages.discardEncryption#edd923c5 chat_id:int = Bool;
-messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
-messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
-messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
-messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
-
-upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
-
-initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
-
-help.getSupport#9cdf08cd = help.Support;
-
-auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
-
-messages.readMessageContents#354b5bc2 id:Vector<int> = Vector<int>;
-
-account.checkUsername#2714d86c username:string = Bool;
-account.updateUsername#3e0bdd7c username:string = User;
-
-contacts.search#11f812d8 q:string limit:int = contacts.Found;
-
-account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
-account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
-account.deleteAccount#418d4e0b reason:string = Bool;
-account.getAccountTTL#8fc711d = AccountDaysTTL;
-account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
-
-invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
-
-contacts.resolveUsername#bf0131c username:string = User;
-
-account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode;
-account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
-account.getPassword#548a30f5 = account.Password;
-account.setPassword#dd2a4d8f current_password_hash:bytes new_salt:bytes new_password_hash:bytes hint:string = Bool;
-
-auth.checkPassword#a63011e password_hash:bytes = auth.Authorization;
-
-messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
-messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;
diff --git a/libs/tgl/src/scheme22.tl b/libs/tgl/src/scheme22.tl
deleted file mode 100644
index 1ed65373e0..0000000000
--- a/libs/tgl/src/scheme22.tl
+++ /dev/null
@@ -1,596 +0,0 @@
-int ?= Int;
-long ?= Long;
-double ?= Double;
-string ?= String;
-
-bytes string = Bytes;
-
-boolFalse#bc799737 = Bool;
-boolTrue#997275b5 = Bool;
-
-int128 long long = Int128;
-int256 long long long long = Int256;
-
-vector#1cb5c415 {t:Type} # [ t ] = Vector t;
-
-error#c4b9f9bb code:int text:string = Error;
-
-null#56730bcc = Null;
-
-inputPeerEmpty#7f3b18ea = InputPeer;
-inputPeerSelf#7da07ec9 = InputPeer;
-inputPeerContact#1023dbe8 user_id:int = InputPeer;
-inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
-inputPeerChat#179be863 chat_id:int = InputPeer;
-
-inputUserEmpty#b98886cf = InputUser;
-inputUserSelf#f7c1b13f = InputUser;
-inputUserContact#86e94f65 user_id:int = InputUser;
-inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
-
-inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
-
-inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
-
-inputMediaEmpty#9664f57f = InputMedia;
-inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
-inputMediaPhoto#8f2ab2ec photo_id:InputPhoto = InputMedia;
-inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
-inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
-inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaVideo#7f023ae6 video_id:InputVideo = InputMedia;
-
-inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
-inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
-inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
-
-inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
-inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint;
-
-inputPhotoEmpty#1cd7bf0d = InputPhoto;
-inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
-
-inputVideoEmpty#5508ec75 = InputVideo;
-inputVideo#ee579652 id:long access_hash:long = InputVideo;
-
-inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
-inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
-
-inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
-inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
-
-inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
-
-peerUser#9db1bc6d user_id:int = Peer;
-peerChat#bad0e5bb chat_id:int = Peer;
-
-storage.fileUnknown#aa963b05 = storage.FileType;
-storage.fileJpeg#7efe0e = storage.FileType;
-storage.fileGif#cae1aadf = storage.FileType;
-storage.filePng#a4f63c0 = storage.FileType;
-storage.filePdf#ae1e508d = storage.FileType;
-storage.fileMp3#528a0677 = storage.FileType;
-storage.fileMov#4b09ebbc = storage.FileType;
-storage.filePartial#40bc6f52 = storage.FileType;
-storage.fileMp4#b3cea0e4 = storage.FileType;
-storage.fileWebp#1081464c = storage.FileType;
-
-fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
-fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
-
-userEmpty#200250ba id:int = User;
-userSelf#7007b451 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
-userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
-userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User;
-
-userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
-userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
-
-userStatusEmpty#9d05049 = UserStatus;
-userStatusOnline#edb93949 expires:int = UserStatus;
-userStatusOffline#8c703f was_online:int = UserStatus;
-
-chatEmpty#9ba2d800 id:int = Chat;
-chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
-chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
-
-chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
-
-chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
-
-chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
-chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
-
-chatPhotoEmpty#37c1011c = ChatPhoto;
-chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
-
-messageEmpty#83e5de54 id:int = Message;
-message#567699b3 flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
-messageForwarded#a367e716 flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
-messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
-
-messageMediaEmpty#3ded6320 = MessageMedia;
-messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
-messageMediaVideo#a2d24290 video:Video = MessageMedia;
-messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
-messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
-messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia;
-
-messageActionEmpty#b6aef7b0 = MessageAction;
-messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
-messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
-messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
-messageActionChatDeletePhoto#95e3fbef = MessageAction;
-messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
-messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
-
-dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
-
-photoEmpty#2331b22d id:long = Photo;
-photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-
-photoSizeEmpty#e17e23c type:string = PhotoSize;
-photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
-photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
-
-videoEmpty#c10658a8 id:long = Video;
-video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-
-geoPointEmpty#1117dd5f = GeoPoint;
-geoPoint#2049d70c longitude:double latitude:double = GeoPoint;
-
-auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone;
-
-auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
-
-auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
-
-inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
-inputNotifyUsers#193b4417 = InputNotifyPeer;
-inputNotifyChats#4a95e84e = InputNotifyPeer;
-inputNotifyAll#a429b886 = InputNotifyPeer;
-
-inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
-inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
-
-inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
-
-peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
-peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
-
-peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
-peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
-
-wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
-
-userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
-
-contact#f911c994 user_id:int mutual:Bool = Contact;
-
-importedContact#d0028438 user_id:int client_id:long = ImportedContact;
-
-contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
-
-contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
-
-contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
-
-chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
-
-contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink;
-contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink;
-contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink;
-
-contacts.myLinkEmpty#d22a1c60 = contacts.MyLink;
-contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink;
-contacts.myLinkContact#c240ebd9 = contacts.MyLink;
-
-contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link;
-
-contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
-contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
-
-contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
-
-contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-
-contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
-
-messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-
-messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-
-messages.messageEmpty#3f4e0648 = messages.Message;
-messages.message#ff90c417 message:Message chats:Vector<Chat> users:Vector<User> = messages.Message;
-
-messages.statedMessages#969478bb messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessages;
-
-messages.statedMessage#d07ae726 message:Message chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessage;
-
-messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage;
-
-messages.chat#40e9002a chat:Chat users:Vector<User> = messages.Chat;
-
-messages.chats#8150cbd8 chats:Vector<Chat> users:Vector<User> = messages.Chats;
-
-messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-
-messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory;
-
-inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
-inputMessagesFilterPhotos#9609a51c = MessagesFilter;
-inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
-inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
-inputMessagesFilterDocument#9eddf188 = MessagesFilter;
-inputMessagesFilterAudio#cfc87522 = MessagesFilter;
-
-updateNewMessage#13abdb3 message:Message pts:int = Update;
-updateMessageID#4e90bfd6 id:int random_id:long = Update;
-updateReadMessages#c6649e31 messages:Vector<int> pts:int = Update;
-updateDeleteMessages#a92bfe26 messages:Vector<int> pts:int = Update;
-updateRestoreMessages#d15de04d messages:Vector<int> pts:int = Update;
-updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
-updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
-updateChatParticipants#7761198 participants:ChatParticipants = Update;
-updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
-updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update;
-updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
-updateContactRegistered#2575bbb9 user_id:int date:int = Update;
-updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update;
-updateActivation#6f690963 user_id:int = Update;
-updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
-
-updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
-
-updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
-updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
-updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
-
-updatesTooLong#e317af7e = Updates;
-updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates;
-updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates;
-updateShort#78d4dec1 update:Update date:int = Updates;
-updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
-updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
-
-photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
-photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
-
-photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
-
-upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
-
-dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
-
-config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
-
-nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
-
-help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
-help.noAppUpdate#c45a6536 = help.AppUpdate;
-
-help.inviteText#18cb9f78 message:string = help.InviteText;
-
-messages.statedMessagesLinks#3e74f5c6 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
-
-messages.statedMessageLink#a9af2881 message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
-
-messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
-
-inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
-
-inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer;
-
-geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
-
-geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
-geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
-geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
-
-geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
-
-geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
-
-geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-
-messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
-messageActionGeoChatCheckin#c7d53de = MessageAction;
-
-updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update;
-
-wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
-
-updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update;
-updateEncryptedChatTyping#1710f156 chat_id:int = Update;
-updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update;
-updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
-
-encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
-encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
-encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
-encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
-
-inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
-
-encryptedFileEmpty#c21f497e = EncryptedFile;
-encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
-
-inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
-inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
-inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
-
-inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
-
-encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
-encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
-
-messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
-messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
-
-messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
-messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
-
-inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
-
-inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
-
-updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
-updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
-updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
-
-inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
-inputMediaAudio#89938781 audio_id:InputAudio = InputMedia;
-inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-inputMediaDocument#d184e841 document_id:InputDocument = InputMedia;
-
-messageMediaDocument#2fda2204 document:Document = MessageMedia;
-messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
-
-inputAudioEmpty#d95adc84 = InputAudio;
-inputAudio#77d440ff id:long access_hash:long = InputAudio;
-
-inputDocumentEmpty#72f0eaae = InputDocument;
-inputDocument#18798952 id:long access_hash:long = InputDocument;
-
-inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
-inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
-
-audioEmpty#586988d8 id:long = Audio;
-audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
-
-documentEmpty#36f8c871 id:long = Document;
-document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
-document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
-
-help.support#17c6b5f6 phone_number:string user:User = help.Support;
-
-notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
-notifyUsers#b4c83b4c = NotifyPeer;
-notifyChats#c007cec3 = NotifyPeer;
-notifyAll#74d07c60 = NotifyPeer;
-
-updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
-updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
-
-auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-sendMessageTypingAction#16bf744e = SendMessageAction;
-sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
-sendMessageRecordVideoAction#a187d66f = SendMessageAction;
-sendMessageUploadVideoAction#92042ff7 = SendMessageAction;
-sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
-sendMessageUploadAudioAction#e6ac8a6f = SendMessageAction;
-sendMessageUploadPhotoAction#990a3c1a = SendMessageAction;
-sendMessageUploadDocumentAction#8faee98e = SendMessageAction;
-sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
-sendMessageChooseContactAction#628cbc6f = SendMessageAction;
-
-contactFound#ea879f95 user_id:int = ContactFound;
-
-contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
-
-updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update;
-
-userStatusRecently#e26f42f1 = UserStatus;
-userStatusLastWeek#7bf09fc = UserStatus;
-userStatusLastMonth#77ebc742 = UserStatus;
-
-updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
-
-inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
-
-privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
-
-inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
-inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
-inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
-inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
-inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
-inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
-
-privacyValueAllowContacts#fffe1bac = PrivacyRule;
-privacyValueAllowAll#65427b82 = PrivacyRule;
-privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
-privacyValueDisallowContacts#f888fa1a = PrivacyRule;
-privacyValueDisallowAll#8b73e763 = PrivacyRule;
-privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule;
-
-account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
-
-accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
-
-account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
-
-updateUserPhone#12b9417b user_id:int phone:string = Update;
-
-account.noPassword#5770e7a9 new_salt:bytes = account.Password;
-account.password#739e5f72 current_salt:bytes new_salt:bytes hint:string = account.Password;
-
-documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
-documentAttributeAnimated#11b58939 = DocumentAttribute;
-documentAttributeSticker#fb0a5727 = DocumentAttribute;
-documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
-documentAttributeAudio#51448e5 duration:int = DocumentAttribute;
-documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
-
-messages.stickersNotModified#f1749a22 = messages.Stickers;
-messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
-
-stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
-
-messages.allStickersNotModified#e86602c3 = messages.AllStickers;
-messages.allStickers#dcef3102 hash:string packs:Vector<StickerPack> documents:Vector<Document> = messages.AllStickers;
-
----functions---
-
-invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
-
-invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
-
-auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
-auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
-auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
-auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
-auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
-auth.logOut#5717da40 = Bool;
-auth.resetAuthorizations#9fab0d1a = Bool;
-auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
-auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
-auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
-auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
-
-account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
-account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
-account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
-account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
-account.resetNotifySettings#db7e1747 = Bool;
-account.updateProfile#f0888d68 first_name:string last_name:string = User;
-account.updateStatus#6628562c offline:Bool = Bool;
-account.getWallPapers#c04cfac2 = Vector<WallPaper>;
-
-users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
-users.getFullUser#ca30a5b1 id:InputUser = UserFull;
-
-contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
-contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
-contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
-contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
-contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
-contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
-contacts.block#332b49fc id:InputUser = Bool;
-contacts.unblock#e54100bd id:InputUser = Bool;
-contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
-contacts.exportCard#84e53737 = Vector<int>;
-contacts.importCard#4fe196fe export_card:Vector<int> = User;
-
-messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
-messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
-messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
-messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
-messages.readHistory#eed884c6 peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory;
-messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
-messages.deleteMessages#14f2dd0a id:Vector<int> = Vector<int>;
-messages.restoreMessages#395f9d7e id:Vector<int> = Vector<int>;
-messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
-messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
-messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage;
-messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage;
-messages.forwardMessages#514cd10f peer:InputPeer id:Vector<int> = messages.StatedMessages;
-messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
-messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
-messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage;
-messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage;
-messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage;
-messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage;
-messages.createChat#419d9aee users:Vector<InputUser> title:string = messages.StatedMessage;
-
-updates.getState#edd4882a = updates.State;
-updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
-
-photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
-photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
-photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
-
-upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
-upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
-
-help.getConfig#c4f9186b = Config;
-help.getNearestDc#1fb33026 = NearestDc;
-help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
-help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
-help.getInviteText#a4a95186 lang_code:string = help.InviteText;
-
-photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
-
-messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage;
-messages.sendBroadcast#41bb0972 contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
-
-geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
-geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
-geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
-geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
-geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
-geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
-geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
-geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
-geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
-geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
-geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
-geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
-
-messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
-messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
-messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
-messages.discardEncryption#edd923c5 chat_id:int = Bool;
-messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
-messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
-messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
-messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
-
-upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
-
-initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
-
-help.getSupport#9cdf08cd = help.Support;
-
-auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
-
-messages.readMessageContents#354b5bc2 id:Vector<int> = Vector<int>;
-
-account.checkUsername#2714d86c username:string = Bool;
-account.updateUsername#3e0bdd7c username:string = User;
-
-contacts.search#11f812d8 q:string limit:int = contacts.Found;
-
-account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
-account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
-account.deleteAccount#418d4e0b reason:string = Bool;
-account.getAccountTTL#8fc711d = AccountDaysTTL;
-account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
-
-invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
-
-contacts.resolveUsername#bf0131c username:string = User;
-
-account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode;
-account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
-account.getPassword#548a30f5 = account.Password;
-account.setPassword#dd2a4d8f current_password_hash:bytes new_salt:bytes new_password_hash:bytes hint:string = Bool;
-
-auth.checkPassword#a63011e password_hash:bytes = auth.Authorization;
-
-messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
-messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;
diff --git a/libs/tgl/src/scheme25.tl b/libs/tgl/src/scheme25.tl
deleted file mode 100644
index 89447c4ff2..0000000000
--- a/libs/tgl/src/scheme25.tl
+++ /dev/null
@@ -1,622 +0,0 @@
-int ?= Int;
-long ?= Long;
-double ?= Double;
-string ?= String;
-
-bytes string = Bytes;
-
-int128 long long = Int128;
-int256 long long long long = Int256;
-
-boolFalse#bc799737 = Bool;
-boolTrue#997275b5 = Bool;
-
-vector#1cb5c415 {t:Type} # [ t ] = Vector t;
-
-error#c4b9f9bb code:int text:string = Error;
-
-null#56730bcc = Null;
-
-inputPeerEmpty#7f3b18ea = InputPeer;
-inputPeerSelf#7da07ec9 = InputPeer;
-inputPeerContact#1023dbe8 user_id:int = InputPeer;
-inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
-inputPeerChat#179be863 chat_id:int = InputPeer;
-
-inputUserEmpty#b98886cf = InputUser;
-inputUserSelf#f7c1b13f = InputUser;
-inputUserContact#86e94f65 user_id:int = InputUser;
-inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
-
-inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
-
-inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
-
-inputMediaEmpty#9664f57f = InputMedia;
-inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
-inputMediaPhoto#8f2ab2ec photo_id:InputPhoto = InputMedia;
-inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
-inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
-inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaVideo#7f023ae6 video_id:InputVideo = InputMedia;
-
-inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
-inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
-inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
-
-inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
-inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint;
-
-inputPhotoEmpty#1cd7bf0d = InputPhoto;
-inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
-
-inputVideoEmpty#5508ec75 = InputVideo;
-inputVideo#ee579652 id:long access_hash:long = InputVideo;
-
-inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
-inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
-
-inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
-inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
-
-inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
-
-peerUser#9db1bc6d user_id:int = Peer;
-peerChat#bad0e5bb chat_id:int = Peer;
-
-storage.fileUnknown#aa963b05 = storage.FileType;
-storage.fileJpeg#7efe0e = storage.FileType;
-storage.fileGif#cae1aadf = storage.FileType;
-storage.filePng#a4f63c0 = storage.FileType;
-storage.filePdf#ae1e508d = storage.FileType;
-storage.fileMp3#528a0677 = storage.FileType;
-storage.fileMov#4b09ebbc = storage.FileType;
-storage.filePartial#40bc6f52 = storage.FileType;
-storage.fileMp4#b3cea0e4 = storage.FileType;
-storage.fileWebp#1081464c = storage.FileType;
-
-fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
-fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
-
-userEmpty#200250ba id:int = User;
-userSelf#1c60e608 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus = User;
-userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
-userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User;
-
-userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
-userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
-
-userStatusEmpty#9d05049 = UserStatus;
-userStatusOnline#edb93949 expires:int = UserStatus;
-userStatusOffline#8c703f was_online:int = UserStatus;
-
-chatEmpty#9ba2d800 id:int = Chat;
-chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
-chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
-
-chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
-
-chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
-
-chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
-chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
-
-chatPhotoEmpty#37c1011c = ChatPhoto;
-chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
-
-messageEmpty#83e5de54 id:int = Message;
-message#a7ab1991 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia = Message;
-messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
-
-messageMediaEmpty#3ded6320 = MessageMedia;
-messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
-messageMediaVideo#a2d24290 video:Video = MessageMedia;
-messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
-messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
-messageMediaUnsupportedL22#29632a36 bytes:bytes = MessageMedia;
-messageMediaUnsupported#9f84f49e = MessageMedia;
-
-messageActionEmpty#b6aef7b0 = MessageAction;
-messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
-messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
-messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
-messageActionChatDeletePhoto#95e3fbef = MessageAction;
-messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
-messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
-
-dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
-
-photoEmpty#2331b22d id:long = Photo;
-photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-
-photoSizeEmpty#e17e23c type:string = PhotoSize;
-photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
-photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
-
-videoEmpty#c10658a8 id:long = Video;
-video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-
-geoPointEmpty#1117dd5f = GeoPoint;
-geoPoint#2049d70c longitude:double latitude:double = GeoPoint;
-
-auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone;
-
-auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
-
-auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
-
-inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
-inputNotifyUsers#193b4417 = InputNotifyPeer;
-inputNotifyChats#4a95e84e = InputNotifyPeer;
-inputNotifyAll#a429b886 = InputNotifyPeer;
-
-inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
-inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
-
-inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
-
-peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
-peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
-
-peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
-peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
-
-wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
-
-userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
-
-contact#f911c994 user_id:int mutual:Bool = Contact;
-
-importedContact#d0028438 user_id:int client_id:long = ImportedContact;
-
-contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
-
-contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
-
-contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
-
-chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
-
-contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link;
-
-contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
-contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
-
-contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
-
-contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-
-contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
-
-messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-
-messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-
-messages.messageEmpty#3f4e0648 = messages.Message;
-
-messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage;
-
-messages.chats#64ff9fd5 chats:Vector<Chat> = messages.Chats;
-
-messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-
-messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory;
-
-inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
-inputMessagesFilterPhotos#9609a51c = MessagesFilter;
-inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
-inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
-inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter;
-inputMessagesFilterDocument#9eddf188 = MessagesFilter;
-inputMessagesFilterAudio#cfc87522 = MessagesFilter;
-
-updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;
-updateMessageID#4e90bfd6 id:int random_id:long = Update;
-updateReadMessages#2e5ab668 messages:Vector<int> pts:int pts_count:int = Update;
-updateDeleteMessages#a20db0e5 messages:Vector<int> pts:int pts_count:int = Update;
-updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
-updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
-updateChatParticipants#7761198 participants:ChatParticipants = Update;
-updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
-updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update;
-updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
-updateContactRegistered#2575bbb9 user_id:int date:int = Update;
-updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update;
-updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
-
-updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
-
-updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
-updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
-updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
-
-updatesTooLong#e317af7e = Updates;
-updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
-updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
-updateShort#78d4dec1 update:Update date:int = Updates;
-updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
-updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
-
-photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
-photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
-
-photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
-
-upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
-
-dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
-
-config#68bac247 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int disabled_features:Vector<DisabledFeature> = Config;
-
-nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
-
-help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
-help.noAppUpdate#c45a6536 = help.AppUpdate;
-
-help.inviteText#18cb9f78 message:string = help.InviteText;
-
-messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector<contacts.Link> seq:int = messages.SentMessage;
-
-inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
-
-inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer;
-
-geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
-
-geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
-geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
-geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
-
-geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
-
-geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
-
-geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-
-messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
-messageActionGeoChatCheckin#c7d53de = MessageAction;
-
-updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update;
-
-wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
-
-updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update;
-updateEncryptedChatTyping#1710f156 chat_id:int = Update;
-updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update;
-updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
-
-encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
-encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
-encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
-encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
-
-inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
-
-encryptedFileEmpty#c21f497e = EncryptedFile;
-encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
-
-inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
-inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
-inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
-
-inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
-
-encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
-encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
-
-messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
-messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
-
-messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
-messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
-
-inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
-
-inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
-
-updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
-updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
-updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
-
-inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
-inputMediaAudio#89938781 audio_id:InputAudio = InputMedia;
-inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-inputMediaDocument#d184e841 document_id:InputDocument = InputMedia;
-
-messageMediaDocument#2fda2204 document:Document = MessageMedia;
-messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
-
-inputAudioEmpty#d95adc84 = InputAudio;
-inputAudio#77d440ff id:long access_hash:long = InputAudio;
-
-inputDocumentEmpty#72f0eaae = InputDocument;
-inputDocument#18798952 id:long access_hash:long = InputDocument;
-
-inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
-inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
-
-audioEmpty#586988d8 id:long = Audio;
-audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
-
-documentEmpty#36f8c871 id:long = Document;
-document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
-document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
-
-help.support#17c6b5f6 phone_number:string user:User = help.Support;
-
-notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
-notifyUsers#b4c83b4c = NotifyPeer;
-notifyChats#c007cec3 = NotifyPeer;
-notifyAll#74d07c60 = NotifyPeer;
-
-updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
-updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
-
-auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-sendMessageTypingAction#16bf744e = SendMessageAction;
-sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
-sendMessageRecordVideoAction#a187d66f = SendMessageAction;
-sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction;
-sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction;
-sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
-sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction;
-sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction;
-sendMessageUploadPhotoAction#990a3c1a = SendMessageAction;
-sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction;
-sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction;
-sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
-sendMessageChooseContactAction#628cbc6f = SendMessageAction;
-
-contactFound#ea879f95 user_id:int = ContactFound;
-
-contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
-
-updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update;
-
-userStatusRecently#e26f42f1 = UserStatus;
-userStatusLastWeek#7bf09fc = UserStatus;
-userStatusLastMonth#77ebc742 = UserStatus;
-
-updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
-
-inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
-
-privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
-
-inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
-inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
-inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
-inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
-inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
-inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
-
-privacyValueAllowContacts#fffe1bac = PrivacyRule;
-privacyValueAllowAll#65427b82 = PrivacyRule;
-privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
-privacyValueDisallowContacts#f888fa1a = PrivacyRule;
-privacyValueDisallowAll#8b73e763 = PrivacyRule;
-privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule;
-
-account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
-
-accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
-
-account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
-
-updateUserPhone#12b9417b user_id:int phone:string = Update;
-
-documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
-documentAttributeAnimated#11b58939 = DocumentAttribute;
-documentAttributeSticker#994c9882 alt:string = DocumentAttribute;
-documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
-documentAttributeAudio#51448e5 duration:int = DocumentAttribute;
-documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
-
-messages.stickersNotModified#f1749a22 = messages.Stickers;
-messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
-
-stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
-
-messages.allStickersNotModified#e86602c3 = messages.AllStickers;
-messages.allStickers#dcef3102 hash:string packs:Vector<StickerPack> documents:Vector<Document> = messages.AllStickers;
-
-disabledFeature#ae636f24 feature:string description:string = DisabledFeature;
-
-updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update;
-updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update;
-
-messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages;
-
-contactLinkUnknown#5f4f9247 = ContactLink;
-contactLinkNone#feedd3ad = ContactLink;
-contactLinkHasPhone#268f3f59 = ContactLink;
-contactLinkContact#d502c2d0 = ContactLink;
-
-updateWebPage#2cc36971 webpage:WebPage = Update;
-
-webPageEmpty#eb1477e8 id:long = WebPage;
-webPagePending#c586da1c id:long date:int = WebPage;
-webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage;
-
-messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia;
-
-authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
-
-account.authorizations#1250abde authorizations:Vector<Authorization> = account.Authorizations;
-
-account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password;
-account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password;
-
-account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings;
-
-account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings;
-
-auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery;
-
-inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia;
-
-messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia;
-
----functions---
-
-invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
-
-invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
-
-auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
-auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
-auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
-auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
-auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
-auth.logOut#5717da40 = Bool;
-auth.resetAuthorizations#9fab0d1a = Bool;
-auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
-auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
-auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
-auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
-
-account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
-account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
-account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
-account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
-account.resetNotifySettings#db7e1747 = Bool;
-account.updateProfile#f0888d68 first_name:string last_name:string = User;
-account.updateStatus#6628562c offline:Bool = Bool;
-account.getWallPapers#c04cfac2 = Vector<WallPaper>;
-
-users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
-users.getFullUser#ca30a5b1 id:InputUser = UserFull;
-
-contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
-contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
-contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
-contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
-contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
-contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
-contacts.block#332b49fc id:InputUser = Bool;
-contacts.unblock#e54100bd id:InputUser = Bool;
-contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
-contacts.exportCard#84e53737 = Vector<int>;
-contacts.importCard#4fe196fe export_card:Vector<int> = User;
-
-messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
-messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
-messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
-messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
-messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
-messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
-messages.deleteMessages#a5f18925 id:Vector<int> = messages.AffectedMessages;
-messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
-messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
-messages.sendMessage#9add8f26 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long = messages.SentMessage;
-messages.sendMedia#2d7923b1 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long = Updates;
-messages.forwardMessages#55e1728d peer:InputPeer id:Vector<int> random_id:Vector<long> = Updates;
-messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
-messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
-messages.editChatTitle#dc452855 chat_id:int title:string = Updates;
-messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates;
-messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates;
-messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates;
-messages.createChat#9cb126e users:Vector<InputUser> title:string = Updates;
-
-updates.getState#edd4882a = updates.State;
-updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
-
-photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
-photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
-photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
-
-upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
-upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
-
-help.getConfig#c4f9186b = Config;
-help.getNearestDc#1fb33026 = NearestDc;
-help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
-help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
-help.getInviteText#a4a95186 lang_code:string = help.InviteText;
-
-photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
-
-messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates;
-messages.sendBroadcast#bf73f4da contacts:Vector<InputUser> random_id:Vector<long> message:string media:InputMedia = Updates;
-
-geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
-geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
-geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
-geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
-geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
-geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
-geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
-geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
-geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
-geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
-geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
-geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
-
-messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
-messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
-messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
-messages.discardEncryption#edd923c5 chat_id:int = Bool;
-messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
-messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
-messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
-messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
-
-upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
-
-initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
-
-help.getSupport#9cdf08cd = help.Support;
-
-auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
-
-messages.readMessageContents#36a73f77 id:Vector<int> = messages.AffectedMessages;
-
-account.checkUsername#2714d86c username:string = Bool;
-account.updateUsername#3e0bdd7c username:string = User;
-
-contacts.search#11f812d8 q:string limit:int = contacts.Found;
-
-account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
-account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
-account.deleteAccount#418d4e0b reason:string = Bool;
-account.getAccountTTL#8fc711d = AccountDaysTTL;
-account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
-
-invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
-
-contacts.resolveUsername#bf0131c username:string = User;
-
-account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode;
-account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
-
-messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
-messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;
-
-account.updateDeviceLocked#38df3532 period:int = Bool;
-
-messages.getWebPagePreview#25223e24 message:string = MessageMedia;
-
-account.getAuthorizations#e320c158 = account.Authorizations;
-account.resetAuthorization#df77f3bc hash:long = Bool;
-account.getPassword#548a30f5 = account.Password;
-account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings;
-account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool;
-
-auth.checkPassword#a63011e password_hash:bytes = auth.Authorization;
-auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery;
-auth.recoverPassword#4ea56e92 code:string = auth.Authorization;
diff --git a/libs/tgl/src/scheme28.tl b/libs/tgl/src/scheme28.tl
deleted file mode 100644
index 302731ef77..0000000000
--- a/libs/tgl/src/scheme28.tl
+++ /dev/null
@@ -1,641 +0,0 @@
-int ?= Int;
-long ?= Long;
-double ?= Double;
-string ?= String;
-
-bytes string = Bytes;
-
-int128 long long = Int128;
-int256 long long long long = Int256;
-
-boolFalse#bc799737 = Bool;
-boolTrue#997275b5 = Bool;
-
-vector#1cb5c415 {t:Type} # [ t ] = Vector t;
-
-error#c4b9f9bb code:int text:string = Error;
-
-null#56730bcc = Null;
-
-inputPeerEmpty#7f3b18ea = InputPeer;
-inputPeerSelf#7da07ec9 = InputPeer;
-inputPeerContact#1023dbe8 user_id:int = InputPeer;
-inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
-inputPeerChat#179be863 chat_id:int = InputPeer;
-
-inputUserEmpty#b98886cf = InputUser;
-inputUserSelf#f7c1b13f = InputUser;
-inputUserContact#86e94f65 user_id:int = InputUser;
-inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
-
-inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
-
-inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
-
-inputMediaEmpty#9664f57f = InputMedia;
-inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia;
-inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia;
-inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
-inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
-inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia;
-inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia;
-inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia;
-
-inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
-inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
-inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
-
-inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
-inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint;
-
-inputPhotoEmpty#1cd7bf0d = InputPhoto;
-inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
-
-inputVideoEmpty#5508ec75 = InputVideo;
-inputVideo#ee579652 id:long access_hash:long = InputVideo;
-
-inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
-inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
-
-inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
-inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
-
-inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
-
-peerUser#9db1bc6d user_id:int = Peer;
-peerChat#bad0e5bb chat_id:int = Peer;
-
-storage.fileUnknown#aa963b05 = storage.FileType;
-storage.fileJpeg#7efe0e = storage.FileType;
-storage.fileGif#cae1aadf = storage.FileType;
-storage.filePng#a4f63c0 = storage.FileType;
-storage.filePdf#ae1e508d = storage.FileType;
-storage.fileMp3#528a0677 = storage.FileType;
-storage.fileMov#4b09ebbc = storage.FileType;
-storage.filePartial#40bc6f52 = storage.FileType;
-storage.fileMp4#b3cea0e4 = storage.FileType;
-storage.fileWebp#1081464c = storage.FileType;
-
-fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
-fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
-
-userEmpty#200250ba id:int = User;
-userSelf#1c60e608 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus = User;
-userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
-userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User;
-
-userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
-userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
-
-userStatusEmpty#9d05049 = UserStatus;
-userStatusOnline#edb93949 expires:int = UserStatus;
-userStatusOffline#8c703f was_online:int = UserStatus;
-
-chatEmpty#9ba2d800 id:int = Chat;
-chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
-chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
-
-chatFullL27#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
-chatFull#cade0791 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite = ChatFull;
-
-chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
-
-chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
-chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
-
-chatPhotoEmpty#37c1011c = ChatPhoto;
-chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
-
-messageEmpty#83e5de54 id:int = Message;
-message#a7ab1991 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia = Message;
-messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
-
-messageMediaEmpty#3ded6320 = MessageMedia;
-messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia;
-messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia;
-messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
-messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
-messageMediaUnsupported#9f84f49e = MessageMedia;
-
-messageActionEmpty#b6aef7b0 = MessageAction;
-messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
-messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
-messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
-messageActionChatDeletePhoto#95e3fbef = MessageAction;
-messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
-messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
-
-dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
-
-photoEmpty#2331b22d id:long = Photo;
-photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-
-photoSizeEmpty#e17e23c type:string = PhotoSize;
-photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
-photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
-
-videoEmpty#c10658a8 id:long = Video;
-video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-
-geoPointEmpty#1117dd5f = GeoPoint;
-geoPoint#2049d70c longitude:double latitude:double = GeoPoint;
-
-auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone;
-
-auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
-
-auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
-
-inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
-inputNotifyUsers#193b4417 = InputNotifyPeer;
-inputNotifyChats#4a95e84e = InputNotifyPeer;
-inputNotifyAll#a429b886 = InputNotifyPeer;
-
-inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
-inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
-
-inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
-
-peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
-peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
-
-peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
-peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
-
-wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
-
-userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
-
-contact#f911c994 user_id:int mutual:Bool = Contact;
-
-importedContact#d0028438 user_id:int client_id:long = ImportedContact;
-
-contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
-
-contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
-
-contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
-
-chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
-
-contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link;
-
-contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
-contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
-
-contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
-
-contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-
-contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
-
-messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-
-messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-
-messages.messageEmpty#3f4e0648 = messages.Message;
-
-messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage;
-
-messages.chats#64ff9fd5 chats:Vector<Chat> = messages.Chats;
-
-messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-
-messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory;
-
-inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
-inputMessagesFilterPhotos#9609a51c = MessagesFilter;
-inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
-inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
-inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter;
-inputMessagesFilterDocument#9eddf188 = MessagesFilter;
-inputMessagesFilterAudio#cfc87522 = MessagesFilter;
-
-updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;
-updateMessageID#4e90bfd6 id:int random_id:long = Update;
-updateDeleteMessages#a20db0e5 messages:Vector<int> pts:int pts_count:int = Update;
-updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
-updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
-updateChatParticipants#7761198 participants:ChatParticipants = Update;
-updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
-updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update;
-updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
-updateContactRegistered#2575bbb9 user_id:int date:int = Update;
-updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update;
-updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
-
-updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
-
-updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
-updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
-updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
-
-updatesTooLong#e317af7e = Updates;
-updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
-updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
-updateShort#78d4dec1 update:Update date:int = Updates;
-updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
-updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
-
-photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
-photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
-
-photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
-
-upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
-
-dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
-
-config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector<DisabledFeature> = Config;
-
-nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
-
-help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
-help.noAppUpdate#c45a6536 = help.AppUpdate;
-
-help.inviteText#18cb9f78 message:string = help.InviteText;
-
-messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector<contacts.Link> seq:int = messages.SentMessage;
-
-inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
-
-inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer;
-
-geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
-
-geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
-geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
-geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
-
-geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
-
-geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
-
-geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-
-messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
-messageActionGeoChatCheckin#c7d53de = MessageAction;
-
-updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update;
-
-wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
-
-updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update;
-updateEncryptedChatTyping#1710f156 chat_id:int = Update;
-updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update;
-updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
-
-encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
-encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
-encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
-encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
-
-inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
-
-encryptedFileEmpty#c21f497e = EncryptedFile;
-encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
-
-inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
-inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
-inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
-
-inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
-
-encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
-encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
-
-messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
-messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
-
-messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
-messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
-
-inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
-
-inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
-
-updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
-updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
-updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
-
-inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
-inputMediaAudio#89938781 audio_id:InputAudio = InputMedia;
-inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-inputMediaDocument#d184e841 document_id:InputDocument = InputMedia;
-
-messageMediaDocument#2fda2204 document:Document = MessageMedia;
-messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
-
-inputAudioEmpty#d95adc84 = InputAudio;
-inputAudio#77d440ff id:long access_hash:long = InputAudio;
-
-inputDocumentEmpty#72f0eaae = InputDocument;
-inputDocument#18798952 id:long access_hash:long = InputDocument;
-
-inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
-inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
-
-audioEmpty#586988d8 id:long = Audio;
-audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
-
-documentEmpty#36f8c871 id:long = Document;
-document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
-document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
-
-help.support#17c6b5f6 phone_number:string user:User = help.Support;
-
-notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
-notifyUsers#b4c83b4c = NotifyPeer;
-notifyChats#c007cec3 = NotifyPeer;
-notifyAll#74d07c60 = NotifyPeer;
-
-updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
-updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
-
-auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-sendMessageTypingAction#16bf744e = SendMessageAction;
-sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
-sendMessageRecordVideoAction#a187d66f = SendMessageAction;
-sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction;
-sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction;
-sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
-sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction;
-sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction;
-sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction;
-sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction;
-sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction;
-sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
-sendMessageChooseContactAction#628cbc6f = SendMessageAction;
-
-contactFound#ea879f95 user_id:int = ContactFound;
-
-contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
-
-updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update;
-
-userStatusRecently#e26f42f1 = UserStatus;
-userStatusLastWeek#7bf09fc = UserStatus;
-userStatusLastMonth#77ebc742 = UserStatus;
-
-updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
-
-inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
-
-privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
-
-inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
-inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
-inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
-inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
-inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
-inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
-
-privacyValueAllowContacts#fffe1bac = PrivacyRule;
-privacyValueAllowAll#65427b82 = PrivacyRule;
-privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
-privacyValueDisallowContacts#f888fa1a = PrivacyRule;
-privacyValueDisallowAll#8b73e763 = PrivacyRule;
-privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule;
-
-account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
-
-accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
-
-account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
-
-updateUserPhone#12b9417b user_id:int phone:string = Update;
-
-documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
-documentAttributeAnimated#11b58939 = DocumentAttribute;
-documentAttributeSticker#994c9882 alt:string = DocumentAttribute;
-documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
-documentAttributeAudio#51448e5 duration:int = DocumentAttribute;
-documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
-
-messages.stickersNotModified#f1749a22 = messages.Stickers;
-messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
-
-stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
-
-messages.allStickersNotModified#e86602c3 = messages.AllStickers;
-messages.allStickers#dcef3102 hash:string packs:Vector<StickerPack> documents:Vector<Document> = messages.AllStickers;
-
-disabledFeature#ae636f24 feature:string description:string = DisabledFeature;
-
-updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update;
-updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update;
-
-messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages;
-
-contactLinkUnknown#5f4f9247 = ContactLink;
-contactLinkNone#feedd3ad = ContactLink;
-contactLinkHasPhone#268f3f59 = ContactLink;
-contactLinkContact#d502c2d0 = ContactLink;
-
-updateWebPage#2cc36971 webpage:WebPage = Update;
-
-webPageEmpty#eb1477e8 id:long = WebPage;
-webPagePending#c586da1c id:long date:int = WebPage;
-webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage;
-
-messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia;
-
-authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
-
-account.authorizations#1250abde authorizations:Vector<Authorization> = account.Authorizations;
-
-account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password;
-account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password;
-
-account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings;
-
-account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings;
-
-auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery;
-
-inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia;
-
-messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia;
-
-receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage;
-
-chatInviteEmpty#69df3769 = ExportedChatInvite;
-chatInviteExported#fc2e05bc link:string = ExportedChatInvite;
-
-chatInviteAlready#5a686d7c chat:Chat = ChatInvite;
-chatInvite#ce917dcd title:string = ChatInvite;
-
-messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction;
-
-updateReadMessagesContents#68c13933 messages:Vector<int> pts:int pts_count:int = Update;
-
----functions---
-
-invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
-
-invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
-
-auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
-auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
-auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
-auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
-auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
-auth.logOut#5717da40 = Bool;
-auth.resetAuthorizations#9fab0d1a = Bool;
-auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
-auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
-auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
-auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
-
-account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
-account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
-account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
-account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
-account.resetNotifySettings#db7e1747 = Bool;
-account.updateProfile#f0888d68 first_name:string last_name:string = User;
-account.updateStatus#6628562c offline:Bool = Bool;
-account.getWallPapers#c04cfac2 = Vector<WallPaper>;
-
-users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
-users.getFullUser#ca30a5b1 id:InputUser = UserFull;
-
-contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
-contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
-contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
-contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
-contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
-contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
-contacts.block#332b49fc id:InputUser = Bool;
-contacts.unblock#e54100bd id:InputUser = Bool;
-contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
-contacts.exportCard#84e53737 = Vector<int>;
-contacts.importCard#4fe196fe export_card:Vector<int> = User;
-
-messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
-messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
-messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
-messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
-messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
-messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
-messages.deleteMessages#a5f18925 id:Vector<int> = messages.AffectedMessages;
-messages.receivedMessages#5a954c0 max_id:int = Vector<ReceivedNotifyMessage>;
-messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
-messages.sendMessage#9add8f26 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long = messages.SentMessage;
-messages.sendMedia#2d7923b1 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long = Updates;
-messages.forwardMessages#55e1728d peer:InputPeer id:Vector<int> random_id:Vector<long> = Updates;
-messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
-messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
-messages.editChatTitle#dc452855 chat_id:int title:string = Updates;
-messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates;
-messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates;
-messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates;
-messages.createChat#9cb126e users:Vector<InputUser> title:string = Updates;
-
-updates.getState#edd4882a = updates.State;
-updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
-
-photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
-photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
-photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
-
-upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
-upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
-
-help.getConfig#c4f9186b = Config;
-help.getNearestDc#1fb33026 = NearestDc;
-help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
-help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
-help.getInviteText#a4a95186 lang_code:string = help.InviteText;
-
-photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
-
-messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates;
-messages.sendBroadcast#bf73f4da contacts:Vector<InputUser> random_id:Vector<long> message:string media:InputMedia = Updates;
-
-geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
-geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
-geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
-geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
-geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
-geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
-geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
-geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
-geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
-geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
-geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
-geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
-
-messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
-messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
-messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
-messages.discardEncryption#edd923c5 chat_id:int = Bool;
-messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
-messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
-messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
-messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
-
-upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
-
-initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
-
-help.getSupport#9cdf08cd = help.Support;
-
-auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
-
-messages.readMessageContents#36a73f77 id:Vector<int> = messages.AffectedMessages;
-
-account.checkUsername#2714d86c username:string = Bool;
-account.updateUsername#3e0bdd7c username:string = User;
-
-contacts.search#11f812d8 q:string limit:int = contacts.Found;
-
-account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
-account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
-account.deleteAccount#418d4e0b reason:string = Bool;
-account.getAccountTTL#8fc711d = AccountDaysTTL;
-account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
-
-invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
-
-contacts.resolveUsername#bf0131c username:string = User;
-
-account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode;
-account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
-
-messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
-messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;
-
-account.updateDeviceLocked#38df3532 period:int = Bool;
-
-messages.getWebPagePreview#25223e24 message:string = MessageMedia;
-
-account.getAuthorizations#e320c158 = account.Authorizations;
-account.resetAuthorization#df77f3bc hash:long = Bool;
-account.getPassword#548a30f5 = account.Password;
-account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings;
-account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool;
-
-auth.checkPassword#a63011e password_hash:bytes = auth.Authorization;
-auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery;
-auth.recoverPassword#4ea56e92 code:string = auth.Authorization;
-
-invokeWithoutUpdates#bf9459b7 {X:Type} query:!X = X;
-
-messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite;
-messages.checkChatInvite#3eadb1bb hash:string = ChatInvite;
-messages.importChatInvite#6c50051c hash:string = Updates;
diff --git a/libs/tgl/src/scheme30.tl b/libs/tgl/src/scheme30.tl
deleted file mode 100644
index d6c9b7cf87..0000000000
--- a/libs/tgl/src/scheme30.tl
+++ /dev/null
@@ -1,656 +0,0 @@
-int ?= Int;
-long ?= Long;
-double ?= Double;
-string ?= String;
-
-bytes string = Bytes;
-
-int128 long long = Int128;
-int256 long long long long = Int256;
-
-boolFalse#bc799737 = Bool;
-boolTrue#997275b5 = Bool;
-
-vector#1cb5c415 {t:Type} # [ t ] = Vector t;
-
-error#c4b9f9bb code:int text:string = Error;
-
-null#56730bcc = Null;
-
-inputPeerEmpty#7f3b18ea = InputPeer;
-inputPeerSelf#7da07ec9 = InputPeer;
-inputPeerContact#1023dbe8 user_id:int = InputPeer;
-inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
-inputPeerChat#179be863 chat_id:int = InputPeer;
-
-inputUserEmpty#b98886cf = InputUser;
-inputUserSelf#f7c1b13f = InputUser;
-inputUserContact#86e94f65 user_id:int = InputUser;
-inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
-
-inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
-
-inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
-
-inputMediaEmpty#9664f57f = InputMedia;
-inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia;
-inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia;
-inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
-inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
-inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia;
-inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia;
-inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia;
-
-inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
-inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
-inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
-
-inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
-inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint;
-
-inputPhotoEmpty#1cd7bf0d = InputPhoto;
-inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
-
-inputVideoEmpty#5508ec75 = InputVideo;
-inputVideo#ee579652 id:long access_hash:long = InputVideo;
-
-inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
-inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
-
-inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
-inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
-
-inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
-
-peerUser#9db1bc6d user_id:int = Peer;
-peerChat#bad0e5bb chat_id:int = Peer;
-
-storage.fileUnknown#aa963b05 = storage.FileType;
-storage.fileJpeg#7efe0e = storage.FileType;
-storage.fileGif#cae1aadf = storage.FileType;
-storage.filePng#a4f63c0 = storage.FileType;
-storage.filePdf#ae1e508d = storage.FileType;
-storage.fileMp3#528a0677 = storage.FileType;
-storage.fileMov#4b09ebbc = storage.FileType;
-storage.filePartial#40bc6f52 = storage.FileType;
-storage.fileMp4#b3cea0e4 = storage.FileType;
-storage.fileWebp#1081464c = storage.FileType;
-
-fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
-fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
-
-userEmpty#200250ba id:int = User;
-userSelf#1c60e608 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus = User;
-userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
-userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User;
-
-userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
-userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
-
-userStatusEmpty#9d05049 = UserStatus;
-userStatusOnline#edb93949 expires:int = UserStatus;
-userStatusOffline#8c703f was_online:int = UserStatus;
-
-chatEmpty#9ba2d800 id:int = Chat;
-chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
-chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
-
-chatFullL27#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
-chatFull#cade0791 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite = ChatFull;
-
-chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
-
-chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
-chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
-
-chatPhotoEmpty#37c1011c = ChatPhoto;
-chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
-
-messageEmpty#83e5de54 id:int = Message;
-message#a7ab1991 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia = Message;
-messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
-
-messageMediaEmpty#3ded6320 = MessageMedia;
-messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia;
-messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia;
-messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
-messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
-messageMediaUnsupported#9f84f49e = MessageMedia;
-
-messageActionEmpty#b6aef7b0 = MessageAction;
-messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
-messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
-messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
-messageActionChatDeletePhoto#95e3fbef = MessageAction;
-messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
-messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
-
-dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
-
-photoEmpty#2331b22d id:long = Photo;
-photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-
-photoSizeEmpty#e17e23c type:string = PhotoSize;
-photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
-photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
-
-videoEmpty#c10658a8 id:long = Video;
-video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-
-geoPointEmpty#1117dd5f = GeoPoint;
-geoPoint#2049d70c longitude:double latitude:double = GeoPoint;
-
-auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone;
-
-auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
-
-auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
-
-inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
-inputNotifyUsers#193b4417 = InputNotifyPeer;
-inputNotifyChats#4a95e84e = InputNotifyPeer;
-inputNotifyAll#a429b886 = InputNotifyPeer;
-
-inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
-inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
-
-inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
-
-peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
-peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
-
-peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
-peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
-
-wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
-
-userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
-
-contact#f911c994 user_id:int mutual:Bool = Contact;
-
-importedContact#d0028438 user_id:int client_id:long = ImportedContact;
-
-contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
-
-contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
-
-contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
-
-chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
-
-contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link;
-
-contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
-contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
-
-contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
-
-contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-
-contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
-
-messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-
-messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-
-messages.messageEmpty#3f4e0648 = messages.Message;
-
-messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage;
-
-messages.chats#64ff9fd5 chats:Vector<Chat> = messages.Chats;
-
-messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-
-messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory;
-
-inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
-inputMessagesFilterPhotos#9609a51c = MessagesFilter;
-inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
-inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
-inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter;
-inputMessagesFilterDocument#9eddf188 = MessagesFilter;
-inputMessagesFilterAudio#cfc87522 = MessagesFilter;
-
-updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;
-updateMessageID#4e90bfd6 id:int random_id:long = Update;
-updateDeleteMessages#a20db0e5 messages:Vector<int> pts:int pts_count:int = Update;
-updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
-updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
-updateChatParticipants#7761198 participants:ChatParticipants = Update;
-updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
-updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update;
-updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
-updateContactRegistered#2575bbb9 user_id:int date:int = Update;
-updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update;
-updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
-
-updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
-
-updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
-updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
-updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
-
-updatesTooLong#e317af7e = Updates;
-updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
-updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
-updateShort#78d4dec1 update:Update date:int = Updates;
-updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
-updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
-
-photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
-photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
-
-photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
-
-upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
-
-dcOptionL28#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
-dcOption#5d8c6cc flags:int id:int ip_address:string port:int = DcOption;
-
-config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector<DisabledFeature> = Config;
-
-nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
-
-help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
-help.noAppUpdate#c45a6536 = help.AppUpdate;
-
-help.inviteText#18cb9f78 message:string = help.InviteText;
-
-messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector<contacts.Link> seq:int = messages.SentMessage;
-
-inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
-
-inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer;
-
-geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
-
-geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
-geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
-geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
-
-geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
-
-geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
-
-geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-
-messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
-messageActionGeoChatCheckin#c7d53de = MessageAction;
-
-updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update;
-
-wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
-
-updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update;
-updateEncryptedChatTyping#1710f156 chat_id:int = Update;
-updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update;
-updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
-
-encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
-encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
-encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
-encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
-
-inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
-
-encryptedFileEmpty#c21f497e = EncryptedFile;
-encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
-
-inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
-inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
-inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
-
-inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
-
-encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
-encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
-
-messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
-messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
-
-messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
-messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
-
-inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
-
-inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
-
-updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
-updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
-updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
-
-inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
-inputMediaAudio#89938781 audio_id:InputAudio = InputMedia;
-inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-inputMediaDocument#d184e841 document_id:InputDocument = InputMedia;
-
-messageMediaDocument#2fda2204 document:Document = MessageMedia;
-messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
-
-inputAudioEmpty#d95adc84 = InputAudio;
-inputAudio#77d440ff id:long access_hash:long = InputAudio;
-
-inputDocumentEmpty#72f0eaae = InputDocument;
-inputDocument#18798952 id:long access_hash:long = InputDocument;
-
-inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
-inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
-
-audioEmpty#586988d8 id:long = Audio;
-audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
-
-documentEmpty#36f8c871 id:long = Document;
-document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
-document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
-
-help.support#17c6b5f6 phone_number:string user:User = help.Support;
-
-notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
-notifyUsers#b4c83b4c = NotifyPeer;
-notifyChats#c007cec3 = NotifyPeer;
-notifyAll#74d07c60 = NotifyPeer;
-
-updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
-updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
-
-auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-sendMessageTypingAction#16bf744e = SendMessageAction;
-sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
-sendMessageRecordVideoAction#a187d66f = SendMessageAction;
-sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction;
-sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction;
-sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
-sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction;
-sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction;
-sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction;
-sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction;
-sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction;
-sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
-sendMessageChooseContactAction#628cbc6f = SendMessageAction;
-
-contactFound#ea879f95 user_id:int = ContactFound;
-
-contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
-
-updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update;
-
-userStatusRecently#e26f42f1 = UserStatus;
-userStatusLastWeek#7bf09fc = UserStatus;
-userStatusLastMonth#77ebc742 = UserStatus;
-
-updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
-
-inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
-
-privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
-
-inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
-inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
-inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
-inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
-inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
-inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
-
-privacyValueAllowContacts#fffe1bac = PrivacyRule;
-privacyValueAllowAll#65427b82 = PrivacyRule;
-privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
-privacyValueDisallowContacts#f888fa1a = PrivacyRule;
-privacyValueDisallowAll#8b73e763 = PrivacyRule;
-privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule;
-
-account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
-
-accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
-
-account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
-
-updateUserPhone#12b9417b user_id:int phone:string = Update;
-
-documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
-documentAttributeAnimated#11b58939 = DocumentAttribute;
-documentAttributeStickerL28#994c9882 alt:string = DocumentAttribute;
-documentAttributeSticker#3a556302 alt:string stickerset:InputStickerSet = DocumentAttribute;
-documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
-documentAttributeAudio#51448e5 duration:int = DocumentAttribute;
-documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
-
-messages.stickersNotModified#f1749a22 = messages.Stickers;
-messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
-
-stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
-
-messages.allStickersNotModified#e86602c3 = messages.AllStickers;
-messages.allStickers#5ce352ec hash:string packs:Vector<StickerPack> sets:Vector<StickerSet> documents:Vector<Document> = messages.AllStickers;
-
-disabledFeature#ae636f24 feature:string description:string = DisabledFeature;
-
-updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update;
-updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update;
-
-messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages;
-
-contactLinkUnknown#5f4f9247 = ContactLink;
-contactLinkNone#feedd3ad = ContactLink;
-contactLinkHasPhone#268f3f59 = ContactLink;
-contactLinkContact#d502c2d0 = ContactLink;
-
-updateWebPage#2cc36971 webpage:WebPage = Update;
-
-webPageEmpty#eb1477e8 id:long = WebPage;
-webPagePending#c586da1c id:long date:int = WebPage;
-webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage;
-
-messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia;
-
-authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
-
-account.authorizations#1250abde authorizations:Vector<Authorization> = account.Authorizations;
-
-account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password;
-account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password;
-
-account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings;
-
-account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings;
-
-auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery;
-
-inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia;
-
-messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia;
-
-receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage;
-
-chatInviteEmpty#69df3769 = ExportedChatInvite;
-chatInviteExported#fc2e05bc link:string = ExportedChatInvite;
-
-chatInviteAlready#5a686d7c chat:Chat = ChatInvite;
-chatInvite#ce917dcd title:string = ChatInvite;
-
-messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction;
-
-updateReadMessagesContents#68c13933 messages:Vector<int> pts:int pts_count:int = Update;
-
-inputStickerSetEmpty#ffb62b95 = InputStickerSet;
-inputStickerSetID#9de7a269 id:long access_hash:long = InputStickerSet;
-inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet;
-
-stickerSet#a7a43b17 id:long access_hash:long title:string short_name:string = StickerSet;
-
-messages.stickerSet#b60a24a6 set:StickerSet packs:Vector<StickerPack> documents:Vector<Document> = messages.StickerSet;
-
----functions---
-
-invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
-
-invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
-
-auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
-auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
-auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
-auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
-auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
-auth.logOut#5717da40 = Bool;
-auth.resetAuthorizations#9fab0d1a = Bool;
-auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
-auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
-auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
-auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
-
-account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
-account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
-account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
-account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
-account.resetNotifySettings#db7e1747 = Bool;
-account.updateProfile#f0888d68 first_name:string last_name:string = User;
-account.updateStatus#6628562c offline:Bool = Bool;
-account.getWallPapers#c04cfac2 = Vector<WallPaper>;
-
-users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
-users.getFullUser#ca30a5b1 id:InputUser = UserFull;
-
-contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
-contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
-contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
-contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
-contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
-contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
-contacts.block#332b49fc id:InputUser = Bool;
-contacts.unblock#e54100bd id:InputUser = Bool;
-contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
-contacts.exportCard#84e53737 = Vector<int>;
-contacts.importCard#4fe196fe export_card:Vector<int> = User;
-
-messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
-messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
-messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
-messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
-messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
-messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
-messages.deleteMessages#a5f18925 id:Vector<int> = messages.AffectedMessages;
-messages.receivedMessages#5a954c0 max_id:int = Vector<ReceivedNotifyMessage>;
-messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
-messages.sendMessage#9add8f26 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long = messages.SentMessage;
-messages.sendMedia#2d7923b1 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long = Updates;
-messages.forwardMessages#55e1728d peer:InputPeer id:Vector<int> random_id:Vector<long> = Updates;
-messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
-messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
-messages.editChatTitle#dc452855 chat_id:int title:string = Updates;
-messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates;
-messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates;
-messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates;
-messages.createChat#9cb126e users:Vector<InputUser> title:string = Updates;
-
-updates.getState#edd4882a = updates.State;
-updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
-
-photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
-photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
-photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
-
-upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
-upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
-
-help.getConfig#c4f9186b = Config;
-help.getNearestDc#1fb33026 = NearestDc;
-help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
-help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
-help.getInviteText#a4a95186 lang_code:string = help.InviteText;
-
-photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
-
-messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates;
-messages.sendBroadcast#bf73f4da contacts:Vector<InputUser> random_id:Vector<long> message:string media:InputMedia = Updates;
-
-geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
-geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
-geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
-geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
-geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
-geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
-geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
-geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
-geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
-geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
-geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
-geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
-
-messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
-messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
-messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
-messages.discardEncryption#edd923c5 chat_id:int = Bool;
-messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
-messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
-messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
-messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
-
-upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
-
-initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
-
-help.getSupport#9cdf08cd = help.Support;
-
-auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
-
-messages.readMessageContents#36a73f77 id:Vector<int> = messages.AffectedMessages;
-
-account.checkUsername#2714d86c username:string = Bool;
-account.updateUsername#3e0bdd7c username:string = User;
-
-contacts.search#11f812d8 q:string limit:int = contacts.Found;
-
-account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
-account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
-account.deleteAccount#418d4e0b reason:string = Bool;
-account.getAccountTTL#8fc711d = AccountDaysTTL;
-account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
-
-invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
-
-contacts.resolveUsername#bf0131c username:string = User;
-
-account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode;
-account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
-
-messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
-messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;
-
-account.updateDeviceLocked#38df3532 period:int = Bool;
-
-auth.importBotAuthorization#67a3ff2c flags:int api_id:int api_hash:string bot_auth_token:string = auth.Authorization;
-
-messages.getWebPagePreview#25223e24 message:string = MessageMedia;
-
-account.getAuthorizations#e320c158 = account.Authorizations;
-account.resetAuthorization#df77f3bc hash:long = Bool;
-account.getPassword#548a30f5 = account.Password;
-account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings;
-account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool;
-
-auth.checkPassword#a63011e password_hash:bytes = auth.Authorization;
-auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery;
-auth.recoverPassword#4ea56e92 code:string = auth.Authorization;
-
-invokeWithoutUpdates#bf9459b7 {X:Type} query:!X = X;
-
-messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite;
-messages.checkChatInvite#3eadb1bb hash:string = ChatInvite;
-messages.importChatInvite#6c50051c hash:string = Updates;
-messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet;
-messages.installStickerSet#efbbfae9 stickerset:InputStickerSet = Bool;
-messages.uninstallStickerSet#f96e55de stickerset:InputStickerSet = Bool;
diff --git a/libs/tgl/src/scheme31.tl b/libs/tgl/src/scheme31.tl
deleted file mode 100644
index 83a2084170..0000000000
--- a/libs/tgl/src/scheme31.tl
+++ /dev/null
@@ -1,668 +0,0 @@
-int ?= Int;
-long ?= Long;
-double ?= Double;
-string ?= String;
-
-bytes string = Bytes;
-
-int128 long long = Int128;
-int256 long long long long = Int256;
-
-boolFalse#bc799737 = Bool;
-boolTrue#997275b5 = Bool;
-
-vector#1cb5c415 {t:Type} # [ t ] = Vector t;
-
-error#c4b9f9bb code:int text:string = Error;
-
-null#56730bcc = Null;
-
-inputPeerEmpty#7f3b18ea = InputPeer;
-inputPeerSelf#7da07ec9 = InputPeer;
-inputPeerContact#1023dbe8 user_id:int = InputPeer;
-inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
-inputPeerChat#179be863 chat_id:int = InputPeer;
-
-inputUserEmpty#b98886cf = InputUser;
-inputUserSelf#f7c1b13f = InputUser;
-inputUserContact#86e94f65 user_id:int = InputUser;
-inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
-
-inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
-
-inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
-
-inputMediaEmpty#9664f57f = InputMedia;
-inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia;
-inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia;
-inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
-inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
-inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia;
-inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia;
-inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia;
-
-inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
-inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
-inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
-
-inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
-inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint;
-
-inputPhotoEmpty#1cd7bf0d = InputPhoto;
-inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
-
-inputVideoEmpty#5508ec75 = InputVideo;
-inputVideo#ee579652 id:long access_hash:long = InputVideo;
-
-inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
-inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
-
-inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
-inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
-
-inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
-
-peerUser#9db1bc6d user_id:int = Peer;
-peerChat#bad0e5bb chat_id:int = Peer;
-
-storage.fileUnknown#aa963b05 = storage.FileType;
-storage.fileJpeg#7efe0e = storage.FileType;
-storage.fileGif#cae1aadf = storage.FileType;
-storage.filePng#a4f63c0 = storage.FileType;
-storage.filePdf#ae1e508d = storage.FileType;
-storage.fileMp3#528a0677 = storage.FileType;
-storage.fileMov#4b09ebbc = storage.FileType;
-storage.filePartial#40bc6f52 = storage.FileType;
-storage.fileMp4#b3cea0e4 = storage.FileType;
-storage.fileWebp#1081464c = storage.FileType;
-
-fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
-fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
-
-userEmpty#200250ba id:int = User;
-
-userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
-userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
-
-userStatusEmpty#9d05049 = UserStatus;
-userStatusOnline#edb93949 expires:int = UserStatus;
-userStatusOffline#8c703f was_online:int = UserStatus;
-
-chatEmpty#9ba2d800 id:int = Chat;
-chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
-chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
-
-chatFull#2e02a614 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> = ChatFull;
-
-
-chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
-
-chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
-chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
-
-chatPhotoEmpty#37c1011c = ChatPhoto;
-chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
-
-messageEmpty#83e5de54 id:int = Message;
-message#c3060325 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia reply_markup:flags.6?ReplyMarkup = Message;
-messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
-
-messageMediaEmpty#3ded6320 = MessageMedia;
-messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia;
-messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia;
-messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
-messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
-messageMediaUnsupported#9f84f49e = MessageMedia;
-
-messageActionEmpty#b6aef7b0 = MessageAction;
-messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
-messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
-messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
-messageActionChatDeletePhoto#95e3fbef = MessageAction;
-messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
-messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
-
-dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
-
-photoEmpty#2331b22d id:long = Photo;
-photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
-
-photoSizeEmpty#e17e23c type:string = PhotoSize;
-photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
-photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
-
-videoEmpty#c10658a8 id:long = Video;
-video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-
-geoPointEmpty#1117dd5f = GeoPoint;
-geoPoint#2049d70c longitude:double latitude:double = GeoPoint;
-
-auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone;
-
-auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-auth.authorization#ff036af1 user:User = auth.Authorization;
-
-auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
-
-inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
-inputNotifyUsers#193b4417 = InputNotifyPeer;
-inputNotifyChats#4a95e84e = InputNotifyPeer;
-inputNotifyAll#a429b886 = InputNotifyPeer;
-
-inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
-inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
-
-inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
-
-peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
-peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
-
-peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
-peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
-
-wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
-
-userFull#5a89ac5b user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool bot_info:BotInfo = UserFull;
-
-contact#f911c994 user_id:int mutual:Bool = Contact;
-
-importedContact#d0028438 user_id:int client_id:long = ImportedContact;
-
-contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
-
-contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
-
-contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
-
-chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
-
-contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link;
-
-contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
-contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
-
-contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
-
-contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
-
-contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
-
-messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
-
-messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-
-messages.messageEmpty#3f4e0648 = messages.Message;
-
-messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage;
-
-messages.chats#64ff9fd5 chats:Vector<Chat> = messages.Chats;
-
-messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-
-messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory;
-
-inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
-inputMessagesFilterPhotos#9609a51c = MessagesFilter;
-inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
-inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
-inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter;
-inputMessagesFilterDocument#9eddf188 = MessagesFilter;
-inputMessagesFilterAudio#cfc87522 = MessagesFilter;
-
-updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;
-updateMessageID#4e90bfd6 id:int random_id:long = Update;
-updateDeleteMessages#a20db0e5 messages:Vector<int> pts:int pts_count:int = Update;
-updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
-updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
-updateChatParticipants#7761198 participants:ChatParticipants = Update;
-updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
-updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update;
-updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
-updateContactRegistered#2575bbb9 user_id:int date:int = Update;
-updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update;
-updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
-
-updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
-
-updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
-updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
-updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
-
-updatesTooLong#e317af7e = Updates;
-updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
-updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
-updateShort#78d4dec1 update:Update date:int = Updates;
-updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
-updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
-
-photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
-photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
-
-photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
-
-upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
-
-dcOptionL28#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
-dcOption#5d8c6cc flags:int id:int ip_address:string port:int = DcOption;
-
-config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector<DisabledFeature> = Config;
-
-nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
-
-help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
-help.noAppUpdate#c45a6536 = help.AppUpdate;
-
-help.inviteText#18cb9f78 message:string = help.InviteText;
-
-messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector<contacts.Link> seq:int = messages.SentMessage;
-
-inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
-
-inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer;
-
-geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
-
-geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
-geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
-geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
-
-geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
-
-geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
-
-geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-
-messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
-messageActionGeoChatCheckin#c7d53de = MessageAction;
-
-updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update;
-
-wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
-
-updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update;
-updateEncryptedChatTyping#1710f156 chat_id:int = Update;
-updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update;
-updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
-
-encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
-encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
-encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
-encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
-
-inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
-
-encryptedFileEmpty#c21f497e = EncryptedFile;
-encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
-
-inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
-inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
-inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
-
-inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
-
-encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
-encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
-
-messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
-messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
-
-messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
-messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
-
-inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
-
-inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
-
-updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
-updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
-updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
-
-inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
-inputMediaAudio#89938781 audio_id:InputAudio = InputMedia;
-inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-inputMediaDocument#d184e841 document_id:InputDocument = InputMedia;
-
-messageMediaDocument#2fda2204 document:Document = MessageMedia;
-messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
-
-inputAudioEmpty#d95adc84 = InputAudio;
-inputAudio#77d440ff id:long access_hash:long = InputAudio;
-
-inputDocumentEmpty#72f0eaae = InputDocument;
-inputDocument#18798952 id:long access_hash:long = InputDocument;
-
-inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
-inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
-
-audioEmpty#586988d8 id:long = Audio;
-audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
-
-documentEmpty#36f8c871 id:long = Document;
-document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
-document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
-
-help.support#17c6b5f6 phone_number:string user:User = help.Support;
-
-notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
-notifyUsers#b4c83b4c = NotifyPeer;
-notifyChats#c007cec3 = NotifyPeer;
-notifyAll#74d07c60 = NotifyPeer;
-
-updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
-updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
-
-auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-sendMessageTypingAction#16bf744e = SendMessageAction;
-sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
-sendMessageRecordVideoAction#a187d66f = SendMessageAction;
-sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction;
-sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction;
-sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
-sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction;
-sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction;
-sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction;
-sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction;
-sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction;
-sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
-sendMessageChooseContactAction#628cbc6f = SendMessageAction;
-
-contactFound#ea879f95 user_id:int = ContactFound;
-
-contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
-
-updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update;
-
-userStatusRecently#e26f42f1 = UserStatus;
-userStatusLastWeek#7bf09fc = UserStatus;
-userStatusLastMonth#77ebc742 = UserStatus;
-
-updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
-
-inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
-
-privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
-
-inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
-inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
-inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
-inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
-inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
-inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
-
-privacyValueAllowContacts#fffe1bac = PrivacyRule;
-privacyValueAllowAll#65427b82 = PrivacyRule;
-privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
-privacyValueDisallowContacts#f888fa1a = PrivacyRule;
-privacyValueDisallowAll#8b73e763 = PrivacyRule;
-privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule;
-
-account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
-
-accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
-
-account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
-
-updateUserPhone#12b9417b user_id:int phone:string = Update;
-
-documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
-documentAttributeAnimated#11b58939 = DocumentAttribute;
-documentAttributeStickerL28#994c9882 alt:string = DocumentAttribute;
-documentAttributeSticker#3a556302 alt:string stickerset:InputStickerSet = DocumentAttribute;
-documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
-documentAttributeAudio#51448e5 duration:int = DocumentAttribute;
-documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
-
-messages.stickersNotModified#f1749a22 = messages.Stickers;
-messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
-
-stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
-
-messages.allStickersNotModified#e86602c3 = messages.AllStickers;
-messages.allStickers#5ce352ec hash:string packs:Vector<StickerPack> sets:Vector<StickerSet> documents:Vector<Document> = messages.AllStickers;
-
-disabledFeature#ae636f24 feature:string description:string = DisabledFeature;
-
-updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update;
-updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update;
-
-messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages;
-
-contactLinkUnknown#5f4f9247 = ContactLink;
-contactLinkNone#feedd3ad = ContactLink;
-contactLinkHasPhone#268f3f59 = ContactLink;
-contactLinkContact#d502c2d0 = ContactLink;
-
-updateWebPage#2cc36971 webpage:WebPage = Update;
-
-webPageEmpty#eb1477e8 id:long = WebPage;
-webPagePending#c586da1c id:long date:int = WebPage;
-webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage;
-
-messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia;
-
-authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
-
-account.authorizations#1250abde authorizations:Vector<Authorization> = account.Authorizations;
-
-account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password;
-account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password;
-
-account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings;
-
-account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings;
-
-auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery;
-
-inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia;
-
-messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia;
-
-receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage;
-
-chatInviteEmpty#69df3769 = ExportedChatInvite;
-chatInviteExported#fc2e05bc link:string = ExportedChatInvite;
-
-chatInviteAlready#5a686d7c chat:Chat = ChatInvite;
-chatInvite#ce917dcd title:string = ChatInvite;
-
-messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction;
-
-updateReadMessagesContents#68c13933 messages:Vector<int> pts:int pts_count:int = Update;
-
-inputStickerSetEmpty#ffb62b95 = InputStickerSet;
-inputStickerSetID#9de7a269 id:long access_hash:long = InputStickerSet;
-inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet;
-
-stickerSet#a7a43b17 id:long access_hash:long title:string short_name:string = StickerSet;
-
-messages.stickerSet#b60a24a6 set:StickerSet packs:Vector<StickerPack> documents:Vector<Document> = messages.StickerSet;
-
-user#22e49072 flags:# id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int = User;
-
-botCommand#c27ac8c7 command:string description:string = BotCommand;
-botCommandOld#b79d22ab command:string params:string description:string = BotCommand;
-
-botInfoEmpty#bb2e37ce = BotInfo;
-botInfo#9cf585d user_id:int version:int share_text:string description:string commands:Vector<BotCommand> = BotInfo;
-
-keyboardButton#a2fa4880 text:string = KeyboardButton;
-
-keyboardButtonRow#77608b83 buttons:Vector<KeyboardButton> = KeyboardButtonRow;
-
-replyKeyboardHide#a03e5b85 flags:int = ReplyMarkup;
-replyKeyboardForceReply#f4108aa0 flags:int = ReplyMarkup;
-replyKeyboardMarkup#3502758c flags:int rows:Vector<KeyboardButtonRow> = ReplyMarkup;
-
----functions---
-
-invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
-
-invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
-
-auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
-auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
-auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
-auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
-auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
-auth.logOut#5717da40 = Bool;
-auth.resetAuthorizations#9fab0d1a = Bool;
-auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
-auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
-auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
-auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
-
-account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
-account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
-account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
-account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
-account.resetNotifySettings#db7e1747 = Bool;
-account.updateProfile#f0888d68 first_name:string last_name:string = User;
-account.updateStatus#6628562c offline:Bool = Bool;
-account.getWallPapers#c04cfac2 = Vector<WallPaper>;
-
-users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
-users.getFullUser#ca30a5b1 id:InputUser = UserFull;
-
-contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
-contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
-contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
-contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
-contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
-contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
-contacts.block#332b49fc id:InputUser = Bool;
-contacts.unblock#e54100bd id:InputUser = Bool;
-contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
-contacts.exportCard#84e53737 = Vector<int>;
-contacts.importCard#4fe196fe export_card:Vector<int> = User;
-
-messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
-messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
-messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
-messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
-messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
-messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
-messages.deleteMessages#a5f18925 id:Vector<int> = messages.AffectedMessages;
-messages.receivedMessages#5a954c0 max_id:int = Vector<ReceivedNotifyMessage>;
-messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
-messages.sendMessage#fc55e6b5 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup = messages.SentMessage;
-messages.sendMedia#c8f16791 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long reply_markup:flags.2?ReplyMarkup = Updates;
-messages.forwardMessages#55e1728d peer:InputPeer id:Vector<int> random_id:Vector<long> = Updates;
-messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
-messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
-messages.editChatTitle#dc452855 chat_id:int title:string = Updates;
-messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates;
-messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates;
-messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates;
-messages.createChat#9cb126e users:Vector<InputUser> title:string = Updates;
-
-updates.getState#edd4882a = updates.State;
-updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
-
-photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
-photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
-photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
-
-upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
-upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
-
-help.getConfig#c4f9186b = Config;
-help.getNearestDc#1fb33026 = NearestDc;
-help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
-help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
-help.getInviteText#a4a95186 lang_code:string = help.InviteText;
-
-photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
-
-messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates;
-messages.sendBroadcast#bf73f4da contacts:Vector<InputUser> random_id:Vector<long> message:string media:InputMedia = Updates;
-
-geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
-geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
-geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
-geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
-geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
-geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
-geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
-geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
-geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
-geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
-geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
-geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
-
-messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
-messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
-messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
-messages.discardEncryption#edd923c5 chat_id:int = Bool;
-messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
-messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
-messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
-messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
-
-upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
-
-initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
-
-help.getSupport#9cdf08cd = help.Support;
-
-auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
-
-messages.readMessageContents#36a73f77 id:Vector<int> = messages.AffectedMessages;
-
-account.checkUsername#2714d86c username:string = Bool;
-account.updateUsername#3e0bdd7c username:string = User;
-
-contacts.search#11f812d8 q:string limit:int = contacts.Found;
-
-account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
-account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
-account.deleteAccount#418d4e0b reason:string = Bool;
-account.getAccountTTL#8fc711d = AccountDaysTTL;
-account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
-
-invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
-
-contacts.resolveUsername#bf0131c username:string = User;
-
-account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode;
-account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
-
-messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
-messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;
-
-account.updateDeviceLocked#38df3532 period:int = Bool;
-
-auth.importBotAuthorization#67a3ff2c flags:int api_id:int api_hash:string bot_auth_token:string = auth.Authorization;
-
-messages.getWebPagePreview#25223e24 message:string = MessageMedia;
-
-account.getAuthorizations#e320c158 = account.Authorizations;
-account.resetAuthorization#df77f3bc hash:long = Bool;
-account.getPassword#548a30f5 = account.Password;
-account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings;
-account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool;
-
-auth.checkPassword#a63011e password_hash:bytes = auth.Authorization;
-auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery;
-auth.recoverPassword#4ea56e92 code:string = auth.Authorization;
-
-invokeWithoutUpdates#bf9459b7 {X:Type} query:!X = X;
-
-messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite;
-messages.checkChatInvite#3eadb1bb hash:string = ChatInvite;
-messages.importChatInvite#6c50051c hash:string = Updates;
-messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet;
-messages.installStickerSet#efbbfae9 stickerset:InputStickerSet = Bool;
-messages.uninstallStickerSet#f96e55de stickerset:InputStickerSet = Bool;
-messages.startBot#1b3e0ffc bot:InputUser chat_id:int random_id:long start_param:string = Updates;
diff --git a/libs/tgl/src/wingetopt.c b/libs/tgl/src/wingetopt.c
deleted file mode 100644
index 09dac17a4f..0000000000
--- a/libs/tgl/src/wingetopt.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
-POSIX getopt for Windows
-
-AT&T Public License
-
-Code given out at the 1985 UNIFORUM conference in Dallas.
-*/
-
-#ifndef __GNUC__
-
-#include "wingetopt.h"
-#include <stdio.h>
-#include <string.h>
-
-#ifndef NULL
-#define NULL 0
-#endif
-#define EOF (-1)
-#define ERR(s, c) if(opterr){\
- char errbuf[2];\
- errbuf[0] = c; errbuf[1] = '\n';\
- fputs(argv[0], stderr);\
- fputs(s, stderr);\
- fputc(c, stderr);}
-//(void) write(2, argv[0], (unsigned)strlen(argv[0]));\
- //(void) write(2, s, (unsigned)strlen(s));\
- //(void) write(2, errbuf, 2);}
-
-int opterr = 1;
-int optind = 1;
-int optopt;
-char *optarg;
-
-int
-getopt(argc, argv, opts)
-int argc;
-char **argv, *opts;
-{
- static int sp = 1;
- register int c;
- register char *cp;
-
- if (sp == 1)
- if (optind >= argc ||
- argv[optind][0] != '-' || argv[optind][1] == '\0')
- return(EOF);
- else if (strcmp(argv[optind], "--") == (int)NULL) {
- optind++;
- return(EOF);
- }
- optopt = c = argv[optind][sp];
- if (c == ':' || (cp = strchr(opts, c)) == NULL) {
- ERR(": illegal option -- ", c);
- if (argv[optind][++sp] == '\0') {
- optind++;
- sp = 1;
- }
- return('?');
- }
- if (*++cp == ':') {
- if (argv[optind][sp + 1] != '\0')
- optarg = &argv[optind++][sp + 1];
- else if (++optind >= argc) {
- ERR(": option requires an argument -- ", c);
- sp = 1;
- return('?');
- }
- else
- optarg = argv[optind++];
- sp = 1;
- }
- else {
- if (argv[optind][++sp] == '\0') {
- sp = 1;
- optind++;
- }
- optarg = NULL;
- }
- return(c);
-}
-
-#endif /* __GNUC__ */ \ No newline at end of file
diff --git a/libs/tgl/src/wingetopt.h b/libs/tgl/src/wingetopt.h
deleted file mode 100644
index 4372c66011..0000000000
--- a/libs/tgl/src/wingetopt.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-POSIX getopt for Windows
-
-AT&T Public License
-
-Code given out at the 1985 UNIFORUM conference in Dallas.
-*/
-
-#ifdef __GNUC__
-#include <getopt.h>
-#endif
-#ifndef __GNUC__
-
-#ifndef _WINGETOPT_H_
-#define _WINGETOPT_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- extern int opterr;
- extern int optind;
- extern int optopt;
- extern char *optarg;
- extern int getopt(int argc, char **argv, char *opts);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _GETOPT_H_ */
-#endif /* __GNUC__ */ \ No newline at end of file