; constants
FLAP_HEAD_SIZE 	= 6
SNAC_HEAD_SIZE 	= 10

;AUTH_MESSAGE 	= 0008h
;USER_ADDED_MESS = 000Ch
;AUTH_REQ_MESS 	= 0006h
;URL_MESS	= 0004h
;WEB_MESS	= 000dh
;EMAIL_MESS	= 000eh
;MASS_MESS_MASK 	= 8000h
;MRURL_MESS	= 8004h
;NORM_MESS	= 0001h
;MRNORM_MESS	= 8001h
;CONTACT_MESS	= 0013h
;MRCONTACT_MESS	= 8013h
;
;
;
;CAP_PRECAP	= "\x09\x46\x13"
;CAP_PRERTF	= "\x97\xb1\x27"
;CAP_POSCAP	= "\x4c\x7f\x11\xd1\x82\x22\x44\x45\x53\x54\x00\x00"
;CAP_POSRTF	= "\x24\x3c\x43\x34\xad\x22\xd6\xab\xf7\x3f\x14\x92"

;
;Fingerprinting Capabilities
;
;CAP_M2001	= "\x2e\x7a\x64"									"\x75"										"\xfa\xdf\x4d\xc8\x88\x6f\xea\x35\x95\xfd\xb6\xdf"
;CAP_M2001_2	= "\xa0\xe9\x3f"									"\x37"										"\x4f\xe9\xd3\x11\xbc\xd2\x00\x04\xac\x96\xdd\x96"	
;CAP_M2002	= "\x10\xcf\x40"									"\xd1"										"\x4f\xe9\xd3\x11\xbc\xd2\x00\x04\xac\x96\xdd\x96"
;CAP_MLITE	= "\x56\x3f\xc8"									"\x09"										"\x0b\x6f\x41\xbd\x9f\x79\x42\x26\x09\xdf\xa2\xf3"
;CAP_SIMICQ	= "\x97\xb1\x27"									"\x51"										"\x24\x3c\x43\x34\xad\x22\xd6\xab\xf7\x3f\x14\x48"
;CAP_MICQ	= "mICQ \xa9 R.K. \x00\x00\x00\x00"
;CAP_TRILL_NORM	= "\x97\xb1\x27"									"\x51"										"\x24\x3c\x43\x34\xad\x22\xd6\xab\xf7\x3f\x14\x09"
;CAP_TRILL_CRYPT= "\xf2\xe7\xc7"									"\xf4"										"\xfe\xad\x4d\xfb\xb2\x35\x36\x79\x8b\xdf\x00\x00"
;CAP_LICQ	= "\x09\x49\x13"	  

;
;DC Packet Types
;
;PEER_INIT		= 0ffh
;PEER_INITACK		= 01h
;PEER_MSG		= 02h
;PEER_INIT2		= 03h
;PEER_FILE_INIT		= 00h
;PEER_FILE_INIT_ACK	= 01h
;PEER_FILE_START		= 02h
;PEER_FILE_START_ACK	= 03h
;PEER_FILE_STOP		= 04h
;PEER_FILE_SPEED		= 05h
;PEER_FILE_DATA		= 06h


ICQ_PORT 	= 5190
;
; FLAP transport
;
FLAP_ID		= 02ah

struc FLAP_head
{
	.bId db FLAP_ID ;id byte 
	.bCh db ? ;channel
	.wSn dw ? ;seq number
	.wDs dw ? ;data size
}
;
; Channels ID
;

NEW_CONNECTION		= 01h
SNAC_DATA		= 02h
FLAP_ERROR		= 03h
CLOSE_CONNECTION	= 04h
KEEP_ALIVE		= 05h

;
; SNAC
; 
struc SNAC_head
{
	.wFid dw ?; Family id
	.wSid dw ?; subtype id
	.wDf  dw ?; SNAC flags
	.dRi  dd ?; SNAC Request id
}

;
;
; Familes/SNACs list
;

GENERIC_SN	= 0001h
LOCATION_SN	= 0002h
BUDDY_LIST_SN	= 0003h
ICBM_SN		= 0004h
PRIVACY_SN	= 0009h
BUDDY_ICONS_SN	= 0010h
SSI_SN		= 0013h
AUTH_REG_SN	= 0017h

;
; TLV
;
struc TLV_head 
{
 	.wTn dw ?; TLV type number
	.wLv dw ?; TLV length value
}

;
; userinfo block
;
struc UI_head
{
	.bUinLength    db 0        ; UIN/screenname length
	.bUin          db 11 dup 0 ; string
	.wWl           dw 0        ; Warning level
	.dUserClass    dd 0
	.dCreateTime   dd 0
	.dSignonTime   dd 0
	.wIdleTime     dw 0
	.dCreationTime dd 0
	.dUserStatus   dd 0
	.dIpAddress    dd 0
	.dOnlineTime   dd 0

}

;
;Roasting array
;
ROASTING_ARRAY db 0F3h, 026h, 081h, 0C4h, 039h, 086h, 0DBh, 092h, 071h, 0A3h, 0B9h, 0E6h, 053h, 07Ah, 095h, 07Ch

;
; Status flags
;
;
 
  STATUS_WEBAWARE   = 0x0001  	  ;Status webaware flag
  STATUS_SHOWIP     = 0x0002	  ;Status show ip flag
  STATUS_BIRTHDAY   = 0x0008 	  ;User birthday flag
  STATUS_WEBFRONT   = 0x0020 	  ;User active webfront flag
  STATUS_DCDISABLED = 0x0100	  ;Direct connection not supported
  STATUS_DCAUTH     = 0x1000	  ;Direct connection upon authorization
  STATUS_DCCONT     = 0x2000	  ;DC only with contact users

;
; Status
;

  STATUS_ONLINE    = 0x0000	  ;Status is online
  STATUS_AWAY      = 0x0001	  ;Status is away
  STATUS_DND  	   = 0x0002	  ;Status is no not disturb (DND)
  STATUS_NA  	   = 0x0004	  ;Status is not available (N/A)
  STATUS_OCCUPIED  = 0x0010	  ;Status is occupied (BISY)
  STATUS_FREE4CHAT = 0x0020 	  ;Status is free for chat
  STATUS_INVISIBLE = 0x0100 	  ;Status is invisible