亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? vclunzip.pas

?? delphi 的壓縮工具代碼
?? PAS
?? 第 1 頁 / 共 5 頁
字號(hào):
{ ********************************************************************************** }
{                                                                                    }
{   COPYRIGHT 1997 Kevin Boylan                                                    }
{     Source File: VCLUnZip.pas                                                      }
{     Description: VCLUnZip component - native Delphi unzip component.               }
{     Date:        March 1997                                                        }
{     Author:      Kevin Boylan, boylank@bigfoot.com                                 }
{                                                                                    }
{                                                                                    }
{ ********************************************************************************** }
unit VCLUnZip;

{$P-}                                                   { turn off open parameters }
{$R-}                                                   { 3/10/98 2.03 }
{$Q-}                                                   { 3/10/98 2.03 }
{$B-} { turn off complete boolean eval }                { 12/24/98  2.17 }

{$I KPDEFS.INC}

interface

uses
   {$IFDEF WIN32}
   Windows,
   {$ELSE}
   WinTypes, WinProcs,
   {$ENDIF}
   SysUtils, Classes,
   {$IFDEF KPSMALL}
   kpSmall,
   {$ELSE}
   Controls, Forms, Dialogs, FileCtrl,
   {$ENDIF}
   kpCntn, kpMatch, KpLib, kpZipObj{$IFNDEF NO_RES}, kpzcnst{$ENDIF};


const
   kpThisVersion         = 222; {added this constant 3/1/98 for version 2.03}

   {$IFDEF WIN32}
   DEF_BUFSTREAMSIZE      = 8192;   { Changed back to 8192 7/20/01  2.21+ }
   {$ELSE}                          { Larger values can cause memory problems }
   DEF_BUFSTREAMSIZE      = 8192;   { Changed back to 8192 7/20/01  2.21+ }
   {$ENDIF}

type

   TMultiMode = (mmNone, mmSpan, mmBlocks);
   TIncompleteZipMode = (izAssumeMulti, izAssumeBad, izAssumeNotAZip);
   TUZOverwriteMode = (Prompt, Always, Never, ifNewer, ifOlder);  { added ifNewer,ifOlder 8/2/98  2.14 }
   TSkipReason = (srBadPassword, srNoOverwrite, srFileOpenError, srCreateError);

   {Decryption}

   DecryptKey = array[0..2] of LongInt;
   DecryptHeaderPtr = ^DecryptHeaderType;
   DecryptHeaderType = array[0..11] of BYTE;

   { Exceptions }
   EBadZipFile = class(Exception);
   EFileNotAllThere = class(Exception);
   EIncompleteZip = class(Exception);
   ENotAZipFile = class(Exception);
   EFatalUnzipError = class(Exception);
   EUserCanceled = class(Exception);
   EInvalidPassword = class(Exception);
   EBiggerThanUncompressed = class(Exception);          { 4/16/98 2.11 }
   ENotEnoughRoom = class(Exception);
   ECantWriteUCF = class(Exception);

   { Event types }

   TStartUnzipInfo = procedure(Sender: TObject; NumFiles: Integer;
      TotalBytes: Comp; var StopNow: Boolean) of object;
   TStartUnZipEvent = procedure(Sender: TObject; FileIndex: Integer;
      var FName: string; var Skip: Boolean) of object;
   TEndUnZipEvent = procedure(Sender: TObject; FileIndex: Integer; FName: string) of object;
   TFilePercentDone = procedure(Sender: TObject; Percent: LongInt) of object;
   TTotalPercentDone = procedure(Sender: TObject; Percent: LongInt) of object;
   TPromptForOverwrite = procedure(Sender: TObject; var OverWriteIt: Boolean;
      FileIndex: Integer; var FName: string) of object;
   TSkippingFile = procedure(Sender: TObject; Reason: TSkipReason; FName: string;
      FileIndex: Integer; var Retry: Boolean) of object;
   TBadPassword = procedure(Sender: TObject; FileIndex: Integer; var NewPassword: string) of
      object;
   TBadCRC = procedure(Sender: TObject; CalcCRC, StoredCRC: LongInt;
      FileIndex: Integer) of object;
   TIncompleteZip = procedure(Sender: TObject; var IncompleteMode: TIncompleteZipMode) of
      object;
   TGetNextDisk = procedure(Sender: TObject; NextDisk: Integer; var FName: string) of object;
   TUnZipComplete = procedure(sender: TObject; FileCount: Integer) of object;
   TGetNextBuffer = procedure(Sender: TObject; var Buffer: PChar; FName: string; AmountUsed:
      LongInt;
      BufferNum: Integer; var Quit: Boolean) of object;

   {$IFNDEF WIN32}
   DWORD = LongInt;
   {$ENDIF}

   TVCLUnZip = class(TComponent)
   PRIVATE
      { Private declarations }
      FZipName: string;
      FDestDir: string;
      FSortMode: TZipSortMode;
      FReCreateDir: Boolean;
      FOverwriteMode: TUZOverwriteMode;
      FFilesList: TStrings;
      FDoAll: Boolean;
      FPassword: string;
      FIncompleteZipMode: TIncompleteZipMode;
      FKeepZipOpen: Boolean;
      FDoProcessMessages: Boolean;
      FNumDisks: Integer;
      FRetainAttributes: Boolean;
      FThisVersion: Integer;
      FReplaceReadOnly: Boolean;
      FNumSelected: Integer;
      FBufferLength: LongInt;                           { 8/23/99  2.18+ }
      FImproperZip: Boolean;                            { 2/19/00  2.20+ }

      { Event variables }
      FOnStartUnzipInfo: TStartUnzipInfo;
      FOnStartUnZip: TStartUnZipEvent;
      FOnEndUnZip: TEndUnZipEvent;
      FOnPromptForOverwrite: TPromptForOverwrite;
      FOnBadPassword: TBadPassword;
      FOnBadCRC: TBadCRC;
      FOnInCompleteZip: TInCompleteZip;
      FOnUnzipComplete: TUnZipComplete;
      FOnGetNextBuffer: TGetNextBuffer;

      function ProcessIntegrityCheck(Index: Integer): Boolean; { 8/15/99 2.18+ }

      { Decrypt }
   PROTECTED
      FOnFilePercentDone: TFilePercentDone;
      FOnTotalPercentDone: TTotalPercentDone;
      FOnSkippingFile: TSkippingFile;
      FOnGetNextDisk: TGetNextDisk;
      FArchiveStream: TStream;
      FBusy: Boolean;
      FRootDir: string;
      FTestMode: Boolean;                               { 12/3/98  2.17P+ }
      FFlushFilesOnClose: Boolean;                      { 10/11/99 2.18+ }
      FBufferedStreamSize: Integer;                    { 05/13/00 2.20+ }
      ArchiveIsStream: Boolean;
      FCheckDiskLabels: Boolean;
      FMultiMode: TMultiMode;
      file_info: TZipHeaderInfo;
      files: TSortedZip;
      sortfiles: TSortedZip;
      filesDate: TDateTime;
      ZipIsBad: Boolean;
      CurrentDisk: Integer;
      theZipFile: TStream;
      Crc32Val: ULONG;
      lrec: local_file_header;
      crec: central_file_header;
      ecrec: TEndCentral;
      ZipCommentPos: LongInt;
      UnZippingSelected: Boolean;                       { 6/27/99 2.18+ }

      tmpMStr: string;
      Key: DecryptKey;
      CancelOperation: Boolean;
      ZipStream: TStream;
      StreamZipping: Boolean;
      MemZipping: Boolean;
      MemBuffer: PChar;
      MemLen: LongInt;
      MemLeft: LongInt;
      CurrMem: PChar;
      Fixing: Boolean;
      DR: Boolean;

      TotalUncompressedSize: Comp;
      TotalBytesDone: Comp;

      procedure OpenZip;
      procedure CloseZip;
      function GetCount: Integer;
      procedure GetFileInfo(infofile: TStream);
      function GetZipName: string;
      procedure SetZipName(ZName: string); VIRTUAL;
      procedure SetArchiveStream(theStream: TStream);
      function GetDestDir: string;
      procedure SetDestDir(DDir: string);
      procedure SetRootDir(Value: string);
      function UnZipFiles(zip_in_file: TStream): Integer;
      function UpdCRC(Octet: Byte; Crc: ULONG): ULONG;
      function SwapDisk(NewDisk: Integer): TStream;
      procedure SetFileComment(Index: Integer; theComment: string);
      procedure SetZipComment(theComment: string);
      procedure WriteNumDisks(NumberOfDisks: Integer);
      procedure NewDiskEvent(Sender: TObject; var S: TStream);
      procedure SetThisVersion(v: Integer);
      function GetCheckDiskLabels: Boolean; VIRTUAL;
      procedure SetCheckDiskLabels(Value: Boolean); VIRTUAL;

      { GetMultiMode and SetMultiMode added 3/10/98 for 2.03}
      function GetMultiMode: TMultiMode; VIRTUAL;
      procedure SetMultiMode(Value: TMultiMode); VIRTUAL;

      { List functions }
      procedure SetFilesList(Value: TStrings);
      function GetFilename(Index: Integer): TZipFilename;
      function GetPathname(Index: Integer): TZipPathname;
      function GetFullname(Index: Integer): string;
      function GetCompressMethod(Index: Integer): WORD;
      function GetCompressMethodStr(Index: Integer): string;
      function GetDateTime(Index: Integer): TDateTime;
      function GetCrc(Index: Integer): ULONG;
      function GetCompressedSize(Index: Integer): LongInt;
      function GetUnCompressedSize(Index: Integer): LongInt;
      function GetExternalFileAttributes(Index: Integer): ULONG;
      function GetIsEncrypted(Index: Integer): Boolean;
      function GetHasComment(Index: Integer): Boolean;
      function GetFileComment(Index: Integer): string;
      function GetFileIsOK(Index: Integer): Boolean;    { 12/3/98  2.17P+ }
      function GetDiskNo(Index: Integer): Integer;
      function GetSelected(Index: Integer): Boolean;    {6/27/99 2.18+ }
      procedure SetSelected(Index: Integer; Value: Boolean);
      {$IFDEF ISDELPHI}
      function GetDecryptHeader(Index: Integer): DecryptHeaderType;
      {$ENDIF}
      function GetZipHasComment: Boolean;
      function GetZipComment: string;
      function GetZipSize: LongInt;

      {Decryption}
      function DecryptTheHeader(Passwrd: string; zfile: TStream): BYTE;
      procedure update_keys(ch: char);
      function decrypt_byte: BYTE;
      procedure Init_Keys(Passwrd: string);
      procedure decrypt_buff(bufptr: BYTEPTR; num_to_decrypt: LongInt);
      procedure Update_CRC_buff(bufptr: BYTEPTR; num_to_update: LongInt);

      procedure DefaultGetNextDisk(Sender: TObject; NextDisk: Integer; var FName: string);

      procedure Loaded; OVERRIDE;

   PUBLIC
      { Public declarations }
      constructor Create(AOwner: TComponent); OVERRIDE;
      destructor Destroy; OVERRIDE;
      procedure Assign(Source: TPersistent); OVERRIDE;  { 6/27/99 2.18+ }
      procedure ReadZip;
      function UnZip: Integer;
      function UnZipSelected: Integer;
      procedure ClearSelected;
      procedure ClearZip;
      procedure FillList(FilesList: TStrings);
      procedure Sort(SMode: TZipSortMode);
      procedure CancelTheOperation;
      procedure AskForNewDisk(NewDisk: Integer);
      function UnZipToStream(theStream: TStream; FName: string): Integer;
      function UnZipToStreamByIndex(theStream: TStream; Index: Integer): Integer;
      function UnZipToBuffer(var Buffer: PChar; FName: string): Integer;
      function UnZipToBufferByIndex(var Buffer: PChar; Index: Integer): Integer;
      procedure ResetFileIsOK(Index: Integer);
      function CheckArchive: Boolean;
      function DecryptHeaderByte(Passwrd: string; dh: DecryptHeaderType): BYTE;
      { The following two are for BCB because of difficulties passing the DecryptHeaderType }
      procedure GetDecryptHeaderPtr(Index: Integer; dhPtr: BytePtr); { 8/8/99  2.18+ }
      function DecryptHeaderByteByPtr(Passwrd: string; dh: BytePtr): Byte; { 8/8/99  2.18+ }
      { -------- }
      property ArchiveStream: TStream READ theZipFile WRITE SetArchiveStream;
      property Count: Integer READ GetCount;
      property Filename[Index: Integer]: TZipFilename READ GetFilename;
      property Pathname[Index: Integer]: TZipPathname READ GetPathname;
      property FullName[Index: Integer]: string READ GetFullName;
      property CompressMethod[Index: Integer]: WORD READ GetCompressMethod;
      property CompressMethodStr[Index: Integer]: string READ GetCompressMethodStr;
      property DateTime[Index: Integer]: TDateTime READ GetDateTime;
      property Crc[Index: Integer]: ULONG READ GetCrc;
      property CompressedSize[Index: Integer]: LongInt READ GetCompressedSize;
      property UnCompressedSize[Index: Integer]: LongInt READ GetUnCompressedSize;
      property ExternalFileAttributes[Index: Integer]: ULONG READ GetExternalFileAttributes;
      property IsEncrypted[Index: Integer]: Boolean READ GetIsEncrypted;
      property FileHasComment[Index: Integer]: Boolean READ GetHasComment;
      property FileComment[Index: Integer]: string READ GetFileComment;
      property FileIsOK[Index: Integer]: Boolean READ GetFileIsOK; { 12/3/98 2.17P+ }
      property DiskNo[Index: Integer]: Integer READ GetDiskNo;
      property Selected[Index: Integer]: Boolean READ GetSelected WRITE SetSelected;  { 6/27/99 2.18+ }
      property ZipComment: string READ GetZipComment;
      property Password: string READ FPassword WRITE FPassword;
      property ZipHasComment: Boolean READ GetZipHasComment;
      property NumDisks: Integer READ FNumDisks;
      property ZipSize: LongInt READ GetZipSize;
      property CheckDiskLabels: Boolean READ GetCheckDiskLabels WRITE SetCheckDiskLabels DEFAULT
         True;
      property MultiMode: TMultiMode READ GetMultiMode WRITE SetMultiMode DEFAULT mmNone;
      property Busy: Boolean READ FBusy DEFAULT False;
      {$IFDEF ISDELPHI}
      property DecryptHeader[Index: Integer]: DecryptHeaderType READ GetDecryptHeader;
      {$ENDIF}
      property NumSelected: Integer READ FNumSelected;
      property BufferLength: LongInt READ FBufferLength WRITE FBufferLength DEFAULT 0;
      property ImproperZip: Boolean READ FImproperZip DEFAULT False;  { 2/19/00  2.20+ }
      property BufferedStreamSize: Integer READ FBufferedStreamSize
                 WRITE FBufferedStreamSize DEFAULT DEF_BUFSTREAMSIZE;

   PUBLISHED
      { Published declarations }
      property ThisVersion: Integer READ FThisVersion WRITE SetThisVersion DEFAULT
         kpThisVersion;
      property ZipName: string READ GetZipName WRITE SetZipName;
      property DestDir: string READ GetDestDir WRITE SetDestDir;
      property RootDir: string READ FRootDir WRITE SetRootDir;
      property SortMode: TZipSortMode READ FSortMode WRITE FSortMode DEFAULT ByNone;
      property RecreateDirs: Boolean READ FRecreateDir WRITE FRecreateDir DEFAULT False;
      property OverwriteMode: TUZOverwriteMode READ FOverwriteMode
         WRITE FOverwriteMode DEFAULT Prompt;
      property FilesList: TStrings READ FFilesList WRITE SetFilesList;
      property DoAll: Boolean READ FDoAll WRITE FDoAll DEFAULT False;
      property IncompleteZipMode: TIncompleteZipMode READ FIncompleteZipMode
         WRITE FIncompleteZipMode DEFAULT izAssumeMulti;
      property KeepZipOpen: Boolean READ FKeepZipOpen WRITE FKeepZipOpen DEFAULT False;
      property DoProcessMessages: Boolean READ FDoProcessMessages WRITE FDoProcessMessages
         DEFAULT True;
      property RetainAttributes: Boolean READ FRetainAttributes WRITE FRetainAttributes DEFAULT
         True;
      property ReplaceReadOnly: Boolean READ FReplaceReadOnly WRITE FReplaceReadOnly DEFAULT
         False;
      property FlushFilesOnClose: Boolean READ FFlushFilesOnClose WRITE FFlushFilesOnClose
         DEFAULT False;
      { Event Properties }
      property OnStartUnZipInfo: TStartUnzipInfo READ FOnStartUnzipInfo
         WRITE FOnStartUnzipInfo;
      property OnFilePercentDone: TFilePercentDone READ FOnFilePercentDone
         WRITE FOnFilePercentDone;
      property OnTotalPercentDone: TTotalPercentDone READ FOnTotalPercentDone
         WRITE FOnTotalPercentDone;
      property OnStartUnZip: TStartUnZipEvent READ FOnStartUnZip WRITE FOnStartUnZip;
      property OnEndUnZip: TEndUnZipEvent READ FOnEndUnZip WRITE FOnEndUnZip;
      property OnPromptForOverwrite: TPromptForOverwrite READ FOnPromptForOverwrite
         WRITE FOnPromptForOverwrite;
      property OnSkippingFile: TSkippingFile READ FOnSkippingFile WRITE FOnSkippingFile;
      property OnBadPassword: TBadPassword READ FOnBadPassword WRITE FOnBadPassword;
      property OnBadCRC: TBadCRC READ FOnBadCRC WRITE FOnBadCRC;
      property OnInCompleteZip: TInCompleteZip READ FOnInCompleteZip WRITE FOnInCompleteZip;
      property OnGetNextDisk: TGetNextDisk READ FOnGetNextDisk WRITE FOnGetNextDisk;
      property OnUnZipComplete: TUnZipComplete READ FOnUnZipComplete WRITE FOnUnZipComplete;
      property OnGetNextBuffer: TGetNextBuffer READ FOnGetNextBuffer WRITE FOnGetNextBuffer;
   end;

   {$IFNDEF KPSMALL}
var
   OpenZipDlg            : TOpenDialog;
   {$ENDIF}

{$IFNDEF FULLPACK}
procedure Register;
{$ENDIF}
{$IFDEF KPDEMO}
function DelphiIsRunning: Boolean;
{$ENDIF}

implementation
{$I kpUnzipp.Pas}

{******************************************************************}

constructor TVCLUnZip.Create(AOwner: TComponent);
{$IFDEF KPDEMO}
{$IFNDEF NO_RES}
var
   tmpMstr2              : string;
   {$ENDIF}
   {$ENDIF}
begin
   inherited Create(AOwner);
   FSortMode := ByNone;
   FDoAll := False;
   RecreateDirs := False;
   FFilesList := TStringList.Create;
   file_info := TZipHeaderInfo.Create;
   Password := '';
   ZipIsBad := False;
   theZipFile := nil;
   files := nil;
   sortfiles := nil;
   FIncompleteZipMode := izAssumeMulti;
   ecrec := TEndCentral.Create;
   CancelOperation := False;
   FKeepZipOpen := False;
   FDoProcessMessages := True;
   FCheckDiskLabels := True;
   StreamZipping := False;
   MemZipping := False;
   MemBuffer := nil;
   MemLen := 0;
   ArchiveIsStream := False;
   Fixing := False;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久搜平片 | 亚洲精品视频观看| 精品国产91久久久久久久妲己| 欧美性色黄大片手机版| 色综合久久88色综合天天免费| 成人高清伦理免费影院在线观看| 国产河南妇女毛片精品久久久| 韩国v欧美v日本v亚洲v| 国产精品一线二线三线精华| 国产精品一区二区在线观看不卡 | 国内精品久久久久影院薰衣草| 久久av资源网| 国产传媒日韩欧美成人| 99久久99久久精品免费观看| 91毛片在线观看| 欧美日韩一区成人| 日韩欧美一级片| 国产精品三级视频| 一区二区国产视频| 奇米影视一区二区三区| 国产乱码精品一区二区三区忘忧草 | 日韩欧美高清dvd碟片| 国产精品毛片久久久久久| 国产伦精品一区二区三区视频青涩 | 亚洲成人自拍网| 亚洲少妇屁股交4| 亚洲国产精品一区二区久久| 亚洲超碰97人人做人人爱| 亚洲免费看黄网站| 91福利国产精品| 麻豆成人91精品二区三区| 久久av中文字幕片| 不卡视频一二三| 日韩一级欧美一级| 亚洲女人小视频在线观看| 日本不卡在线视频| 99精品视频一区二区| 欧美一区二区精品在线| 国产精品国产三级国产| 视频一区二区欧美| 99久久久国产精品| 5月丁香婷婷综合| 亚洲欧美日韩国产一区二区三区 | 欧美亚洲国产怡红院影院| 欧美成人精品二区三区99精品| 久久久亚洲精华液精华液精华液| 亚洲乱码精品一二三四区日韩在线| 美国毛片一区二区三区| 91成人网在线| 亚洲视频免费在线| 国产传媒欧美日韩成人| 日韩一级高清毛片| 午夜激情久久久| 91蝌蚪porny| 国产精品久久久久久久久图文区 | 一区二区三区在线免费播放 | 亚洲欧洲精品一区二区三区不卡| 美女视频一区二区| 欧美人成免费网站| 亚洲国产一区二区在线播放| 成人丝袜18视频在线观看| 久久久亚洲精品石原莉奈| 精品在线播放午夜| 欧美大胆人体bbbb| 免费在线看成人av| 日韩美女一区二区三区四区| 日韩av中文在线观看| 欧美日本在线观看| 日韩在线一区二区| 日韩精品一区在线观看| 六月婷婷色综合| 欧美mv日韩mv亚洲| 激情文学综合丁香| 国产亚洲1区2区3区| 日本不卡123| 波多野结衣在线一区| 蜜桃一区二区三区在线观看| 国产日韩av一区| 亚洲欧美激情一区二区| 青青青伊人色综合久久| 麻豆freexxxx性91精品| av一本久道久久综合久久鬼色| 从欧美一区二区三区| 欧美自拍偷拍一区| 久久蜜桃av一区精品变态类天堂| 欧美精品三级在线观看| 国内精品国产三级国产a久久| 91在线码无精品| 一区二区三区中文在线观看| 青青草伊人久久| 国产在线不卡一卡二卡三卡四卡| 欧美伊人久久大香线蕉综合69| 亚洲国产成人av| 91麻豆精品91久久久久久清纯| 免费人成精品欧美精品| 国产调教视频一区| 一本高清dvd不卡在线观看| 亚洲大型综合色站| 久久久国产精品午夜一区ai换脸| av电影在线观看完整版一区二区| 一区二区在线看| 日韩欧美三级在线| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲午夜一二三区视频| 欧美成人精品二区三区99精品| 成人国产精品免费| 欧美aaa在线| 综合久久久久综合| 日韩三级免费观看| 一本色道久久综合狠狠躁的推荐| 日本aⅴ精品一区二区三区| 中文字幕高清一区| 欧美一区二区三区在线视频| 成人教育av在线| 久久激情五月激情| 亚洲高清免费视频| 国产精品久久久久一区二区三区 | jlzzjlzz欧美大全| 美女诱惑一区二区| 亚洲制服欧美中文字幕中文字幕| 欧美精品一区二区三| 欧美三级资源在线| 色综合久久中文综合久久牛| 久久国产精品区| 婷婷国产在线综合| 亚洲色图制服诱惑| 国产欧美一区二区精品久导航| 91精品国产综合久久香蕉麻豆| av电影天堂一区二区在线观看| 国内偷窥港台综合视频在线播放| 亚洲国产精品麻豆| 一区二区三区欧美| 国产精品电影一区二区| 26uuu亚洲| 精品国精品自拍自在线| 制服丝袜av成人在线看| 日本二三区不卡| 91啪在线观看| www.色综合.com| a4yy欧美一区二区三区| 国产乱子伦视频一区二区三区 | 久久精品一区蜜桃臀影院| 欧美一区二区三区喷汁尤物| 欧美在线综合视频| 欧美性受xxxx黑人xyx性爽| 色婷婷综合久久| 欧美伊人久久久久久久久影院 | 国产精品一卡二卡在线观看| 麻豆成人91精品二区三区| 免费在线观看日韩欧美| 免费在线观看精品| 久久国产成人午夜av影院| 精品一二线国产| 国产在线不卡一区| 成人午夜视频在线| av男人天堂一区| 欧美综合一区二区| 欧美人牲a欧美精品| 日韩一级高清毛片| 久久久国际精品| 国产精品成人免费在线| 亚洲精品乱码久久久久久久久| 国产清纯美女被跳蛋高潮一区二区久久w| 国产精品免费视频一区| 国产欧美日韩在线| 偷窥国产亚洲免费视频| 国产成人免费在线观看| 91视频.com| 亚洲欧洲制服丝袜| 亚洲三级免费观看| 精品国产123| 国产精品美女久久久久久2018| 福利一区在线观看| 91色porny蝌蚪| 欧美老女人第四色| 久久亚洲一级片| 国产精品久久久久婷婷| 亚洲欧美日本韩国| 青青草视频一区| av一区二区不卡| 91麻豆精品国产91久久久久久久久| 欧美一级一级性生活免费录像| 国产亚洲人成网站| 亚洲一级二级在线| 狠狠色狠狠色综合| 国产精品欧美一区喷水| 一区二区三区**美女毛片| 国产麻豆91精品| 欧美va亚洲va| 国产精品理论片| 日韩中文字幕麻豆| 成人久久久精品乱码一区二区三区| 91蝌蚪porny九色| 欧美xxxx老人做受| 最新高清无码专区| 免费观看成人鲁鲁鲁鲁鲁视频| 国产suv一区二区三区88区| 欧美裸体bbwbbwbbw| 国产精品久久久久久亚洲伦| 免费成人在线影院|