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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? vs_compress.pas

?? KSDev.VirtualSream.v1.01.rar 虛擬文件系統,
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
{==============================================================================

  Copyright (C) 1998-2004 by Evgeny Kryukov
  All rights reserved

  All contents of this file and all other files included in this archive
  are Copyright (C) 2004 Evgeny Kryukov. Use and/or distribution of
  them requires acceptance of the License Agreement.

  See License.txt for licence information

  $Id: vs_compress.pas,v 1.1.1.1 2006/09/26 09:49:37 eugene Exp $

===============================================================================}

{ Original:
  zlib.h -- interface of the 'zlib' general purpose compression library
  version 1.1.2, Mar, 1998

  Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler

  This software is provided 'as-is', without any express or implied
  warranty.  In no event will the authors be held liable for any damages
  arising from the use of this software.

  Permission is granted to anyone to use this software for any purpose,
  including commercial applications, and to alter it and redistribute it
  freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not
     claim that you wrote the original software. If you use this software
     in a product, an acknowledgment in the product documentation would be
     appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be
     misrepresented as being the original software.
  3. This notice may not be removed or altered from any source distribution.

  Jean-loup Gailly        Mark Adler
  jloup@gzip.org          madler@alumni.caltech.edu


  The data format used by the zlib library is described by RFCs (Request for
  Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt
  (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).

  Pascal tranlastion
  Copyright (C) 1998 by Jacques Nomssi Nzali

  Delphi & BCB Translation 
  Copyright (C) 2002 by Egor Kryukov

  CLX Edition & Kylix Translation
  Copyright (C) 2002 by Evgeny Kryukov

}

unit vs_compress;

{$T-}
{$define patch112}        { apply patch from the zlib home page }
{$define ORG_DEBUG}
{$DEFINE MAX_MATCH_IS_258}

interface

uses SysUtils, Classes;

{!============================================================================!}

const
  kscCompressVersion = '2.0';
  kscCompressVersionPropText = 'LibCommpress Version ' + kscCompressVersion;

var
  SigCompress: PChar = '- ' + kscCompressVersionPropText +
    {$IFDEF KS_DELPHI4} ' - D4 - '+ {$ENDIF}
    {$IFDEF KS_CBUILDER4} ' - CB4 - ' + {$ENDIF}
    {$IFDEF KS_DELPHI5} ' - D5 - '+ {$ENDIF}
    {$IFDEF KS_CBUILDER5} ' - CB5 - '+ {$ENDIF}
    {$IFDEF KS_DELPHI6} ' - D6 - '+ {$ENDIF}
    {$IFDEF KS_CBUILDER6} ' - CB6 - '+ {$ENDIF}
    {$IFDEF KS_DELPHI7} ' - D7 - '+ {$ENDIF}
    {$IFDEF KS_CBUILDER7} ' - CB7 - '+ {$ENDIF}
    'Copyright (C) 1998-2003 by Evgeny Kryukov -';


type
  {Byte   = usigned char;  8 bits}
  Bytef  = byte;
  charf  = byte;

  int    = integer;

  intf   = int;
  uInt   = cardinal;     { 16 bits or more }
  uIntf  = uInt;

  Long   = longint;
  uLong  = LongInt;      { 32 bits or more }
  uLongf = uLong;

  voidp  = pointer;
  voidpf = voidp;
  pBytef = ^Bytef;
  pIntf  = ^intf;
  puIntf = ^uIntf;
  puLong = ^uLongf;

  ptr2int = uInt;
{ a pointer to integer casting is used to do pointer arithmetic.
  ptr2int must be an integer type and sizeof(ptr2int) must be less
  than sizeof(pointer) - Nomssi }

type
  zByteArray = array[0..(MaxInt div SizeOf(Bytef))-1] of Bytef;
  pzByteArray = ^zByteArray;
type
  zIntfArray = array[0..(MaxInt div SizeOf(Intf))-1] of Intf;
  pzIntfArray = ^zIntfArray;
type
  zuIntArray = array[0..(MaxInt div SizeOf(uInt))-1] of uInt;
  PuIntArray = ^zuIntArray;

{ Type declarations - only for deflate }

type
  uch  = Byte;
  uchf = uch; { FAR }
  ush  = Word;
  ushf = ush;
  ulg  = LongInt;

  unsigned = uInt;

  pcharf = ^charf;
  puchf = ^uchf;
  pushf = ^ushf;

type
  zuchfArray = zByteArray;
  puchfArray = ^zuchfArray;
type
  zushfArray = array[0..(MaxInt div SizeOf(ushf))-1] of ushf;
  pushfArray = ^zushfArray;

procedure zmemcpy(destp : pBytef; sourcep : pBytef; len : uInt);
function zmemcmp(s1p, s2p : pBytef; len : uInt) : int;
procedure zmemzero(destp : pBytef; len : uInt);
procedure zcfree(opaque : voidpf; ptr : voidpf);
function zcalloc (opaque : voidpf; items : uInt; size : uInt) : voidpf;


{ zlib.h }

{ Maximum value for memLevel in deflateInit2 }
const
  MAX_MEM_LEVEL = 9;
  DEF_MEM_LEVEL = 8; { if MAX_MEM_LEVEL > 8 }

{ Maximum value for windowBits in deflateInit2 and inflateInit2 }
const
  MAX_WBITS = 15; { 32K LZ77 window }
{ default windowBits for decompression. MAX_WBITS is for compression only }
const
  DEF_WBITS = MAX_WBITS;

{ The memory requirements for deflate are (in bytes):
            1 shl (windowBits+2)   +  1 shl (memLevel+9)
 that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
 plus a few kilobytes for small objects. For example, if you want to reduce
 the default memory requirements from 256K to 128K, compile with
     DMAX_WBITS=14 DMAX_MEM_LEVEL=7
 Of course this will generally degrade compression (there's no free lunch).

 The memory requirements for inflate are (in bytes) 1 shl windowBits
 that is, 32K for windowBits=15 (default value) plus a few kilobytes
 for small objects. }


{ Huffman code lookup table entry--this entry is four bytes for machines
  that have 16-bit pointers (e.g. PC's in the small or medium model). }

type
  pInflate_huft = ^inflate_huft;
  inflate_huft = Record
    Exop,             { number of extra bits or operation }
    bits : Byte;      { number of bits in this code or subcode }
    {pad : uInt;}       { pad structure to a power of 2 (4 bytes for }
                      {  16-bit, 8 bytes for 32-bit int's) }
    base : uInt;      { literal, length base, or distance base }
                      { or table offset }
  End;

type
  huft_field = Array[0..(MaxInt div SizeOf(inflate_huft))-1] of inflate_huft;
  huft_ptr = ^huft_field;
type
  ppInflate_huft = ^pInflate_huft;

type
  inflate_codes_mode = ( { waiting for "i:"=input, "o:"=output, "x:"=nothing }
        START,    { x: set up for LEN }
        LEN,      { i: get length/literal/eob next }
        LENEXT,   { i: getting length extra (have base) }
        DIST,     { i: get distance next }
        DISTEXT,  { i: getting distance extra }
        COPY,     { o: copying bytes in window, waiting for space }
        LIT,      { o: got literal, waiting for output space }
        WASH,     { o: got eob, possibly still output waiting }
        ZEND,     { x: got eob and all data flushed }
        BADCODE); { x: got error }

{ inflate codes private state }
type
  pInflate_codes_state = ^inflate_codes_state;
  inflate_codes_state = record

    mode : inflate_codes_mode;        { current inflate_codes mode }

    { mode dependent information }
    len : uInt;
    sub : record                      { submode }
      Case Byte of
      0:(code : record                { if LEN or DIST, where in tree }
          tree : pInflate_huft;       { pointer into tree }
          need : uInt;                { bits needed }
         end);
      1:(lit : uInt);                 { if LIT, literal }
      2:(copy: record                 { if EXT or COPY, where and how much }
           get : uInt;                { bits to get for extra }
           dist : uInt;               { distance back to copy from }
         end);
    end;

    { mode independent information }
    lbits : Byte;                     { ltree bits decoded per branch }
    dbits : Byte;                     { dtree bits decoder per branch }
    ltree : pInflate_huft;            { literal/length/eob tree }
    dtree : pInflate_huft;            { distance tree }
  end;

type
  check_func = function(check : uLong;
                        buf : pBytef;
                        {const buf : array of byte;}
	                len : uInt) : uLong;
type
  inflate_block_mode =
     (ZTYPE,    { get type bits (3, including end bit) }
      LENS,     { get lengths for stored }
      STORED,   { processing stored block }
      TABLE,    { get table lengths }
      BTREE,    { get bit lengths tree for a dynamic block }
      DTREE,    { get length, distance trees for a dynamic block }
      CODES,    { processing fixed or dynamic block }
      DRY,      { output remaining window bytes }
      BLKDONE,  { finished last block, done }
      BLKBAD);  { got a data error--stuck here }

type
  pInflate_blocks_state = ^inflate_blocks_state;

{ inflate blocks semi-private state }
  inflate_blocks_state = record

    mode : inflate_block_mode;     { current inflate_block mode }

    { mode dependent information }
    sub : record                  { submode }
    case Byte of
    0:(left : uInt);              { if STORED, bytes left to copy }
    1:(trees : record             { if DTREE, decoding info for trees }
        table : uInt;               { table lengths (14 bits) }
        index : uInt;               { index into blens (or border) }
        blens : PuIntArray;         { bit lengths of codes }
        bb : uInt;                  { bit length tree depth }
        tb : pInflate_huft;         { bit length decoding tree }
      end);
    2:(decode : record            { if CODES, current state }
        tl : pInflate_huft;
        td : pInflate_huft;         { trees to free }
        codes : pInflate_codes_state;
      end);
    end;
    last : boolean;               { true if this block is the last block }

    { mode independent information }
    bitk : uInt;            { bits in bit buffer }
    bitb : uLong;           { bit buffer }
    hufts : huft_ptr; {pInflate_huft;}  { single malloc for tree space }
    window : pBytef;        { sliding window }
    zend : pBytef;          { one byte after sliding window }
    read : pBytef;          { window read pointer }
    write : pBytef;         { window write pointer }
    checkfn : check_func;   { check function }
    check : uLong;          { check on output }
  end;

type
  inflate_mode = (
      METHOD,   { waiting for method byte }
      FLAG,     { waiting for flag byte }
      DICT4,    { four dictionary check bytes to go }
      DICT3,    { three dictionary check bytes to go }
      DICT2,    { two dictionary check bytes to go }
      DICT1,    { one dictionary check byte to go }
      DICT0,    { waiting for inflateSetDictionary }
      BLOCKS,   { decompressing blocks }
      CHECK4,   { four check bytes to go }
      CHECK3,   { three check bytes to go }
      CHECK2,   { two check bytes to go }
      CHECK1,   { one check byte to go }
      DONE,     { finished check, done }
      BAD);     { got an error--stay here }

{ inflate private state }
type
  pInternal_state = ^internal_state; { or point to a deflate_state record }
  internal_state = record

     mode : inflate_mode;  { current inflate mode }

     { mode dependent information }
     sub : record          { submode }
       case byte of
       0:(method : uInt);  { if FLAGS, method byte }
       1:(check : record   { if CHECK, check values to compare }
           was : uLong;        { computed check value }
           need : uLong;       { stream check value }
          end);
       2:(marker : uInt);  { if BAD, inflateSync's marker bytes count }
     end;

     { mode independent information }
     nowrap : boolean;      { flag for no wrapper }
     wbits : uInt;          { log2(window size)  (8..15, defaults to 15) }
     blocks : pInflate_blocks_state;    { current inflate_blocks state }
   end;

type
  alloc_func = function(opaque : voidpf; items : uInt; size : uInt) : voidpf;
  free_func = procedure(opaque : voidpf; address : voidpf);

type
  z_streamp = ^z_stream;
  z_stream = record
    next_in : pBytef;     { next input byte }
    avail_in : uInt;      { number of bytes available at next_in }
    total_in : uLong;     { total nb of input bytes read so far }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品乱码一区二区三区软件| 精品欧美一区二区三区精品久久| 国产伦精品一区二区三区在线观看| 午夜精品久久一牛影视| 亚洲bt欧美bt精品| 蜜芽一区二区三区| 国内精品久久久久影院色| 极品少妇xxxx精品少妇| 高清不卡在线观看av| 91伊人久久大香线蕉| 色悠久久久久综合欧美99| 欧美日韩二区三区| 精品国产乱码久久久久久老虎| 久久久久九九视频| 成人欧美一区二区三区1314| 成人免费一区二区三区在线观看| 亚洲图片你懂的| 亚洲3atv精品一区二区三区| 日韩一区欧美二区| 国产另类ts人妖一区二区| 国产精品一二三在| 在线观看91精品国产入口| 91精品国产一区二区人妖| 久久久久久久综合| 亚洲激情第一区| 久久99国产精品久久| 成人黄色a**站在线观看| 欧洲激情一区二区| 国产丝袜欧美中文另类| 亚洲制服丝袜av| 国产伦精一区二区三区| 91福利社在线观看| 久久色在线观看| 亚洲一区二三区| 国产在线一区观看| 在线观看亚洲一区| 2024国产精品| 天天综合网天天综合色| 国产91富婆露脸刺激对白| 欧美日韩一区二区三区免费看| 26uuu亚洲综合色欧美| 亚洲一区二区三区爽爽爽爽爽| 激情五月婷婷综合网| 一本久久精品一区二区| 久久综合成人精品亚洲另类欧美| 伊人色综合久久天天人手人婷| 国产一区二区主播在线| 7777女厕盗摄久久久| 国产精品国产三级国产普通话蜜臀| 亚洲mv在线观看| 91日韩一区二区三区| 久久久久久久av麻豆果冻| 视频一区二区三区在线| 一本色道a无线码一区v| 国产精品乱码人人做人人爱| 精品写真视频在线观看| 欧美另类z0zxhd电影| 亚洲精品你懂的| youjizz国产精品| 国产欧美视频一区二区| 国产精品一区一区三区| 欧美电视剧在线观看完整版| 亚洲国产aⅴ成人精品无吗| 色综合一区二区| 亚洲欧洲av在线| 成人精品一区二区三区四区 | av一二三不卡影片| 国产亚洲欧洲997久久综合| 黑人巨大精品欧美一区| 日韩欧美国产三级| 久久69国产一区二区蜜臀| 日韩免费一区二区| 美脚の诱脚舐め脚责91 | 26uuu精品一区二区三区四区在线| 午夜精品久久一牛影视| 欧美日韩在线播| 洋洋成人永久网站入口| 色婷婷av一区| 午夜激情综合网| 日韩三级中文字幕| 国内外成人在线| 国产亚洲一区二区在线观看| 国产精品主播直播| 中文字幕欧美区| 成人高清伦理免费影院在线观看| 日本一区二区三区四区| 色综合久久九月婷婷色综合| 亚洲国产日韩在线一区模特| 69p69国产精品| 老司机精品视频导航| 久久久无码精品亚洲日韩按摩| 懂色av中文一区二区三区| 综合亚洲深深色噜噜狠狠网站| 日本高清不卡aⅴ免费网站| 肉色丝袜一区二区| 久久综合成人精品亚洲另类欧美| 成人av免费在线观看| 亚洲资源中文字幕| 亚洲精品一区二区三区影院| av亚洲精华国产精华| 亚洲mv在线观看| 久久人人爽人人爽| 一本色道综合亚洲| 国产中文一区二区三区| 亚洲激情图片qvod| 久久亚洲影视婷婷| 91浏览器入口在线观看| 免费人成精品欧美精品| 国产精品久久久久影视| 欧美一区二区视频在线观看| 国产精品中文有码| 偷窥少妇高潮呻吟av久久免费| 精品久久久久久最新网址| 91亚洲精品乱码久久久久久蜜桃| 日本aⅴ免费视频一区二区三区| 国产欧美日韩视频在线观看| 欧美日韩精品免费| 成人黄色大片在线观看| 久久精品理论片| 亚洲一区在线观看免费 | 九色综合狠狠综合久久| 亚洲女同女同女同女同女同69| 欧美大胆人体bbbb| 欧美午夜精品免费| 不卡一卡二卡三乱码免费网站| 美国毛片一区二区| 午夜精品影院在线观看| 国产精品午夜在线| 2017欧美狠狠色| 欧美一区在线视频| 欧美日韩在线直播| 色噜噜偷拍精品综合在线| 国产精品亚洲第一区在线暖暖韩国 | 国产激情一区二区三区| 秋霞影院一区二区| 日韩电影在线免费看| 亚洲欧美视频在线观看| 国产精品午夜电影| 久久午夜老司机| 日韩午夜在线观看| 91精品国产福利| 91精品欧美久久久久久动漫| 欧美午夜精品久久久久久孕妇| 91天堂素人约啪| 99精品在线观看视频| av电影一区二区| 成人国产一区二区三区精品| 国产激情视频一区二区三区欧美| 麻豆精品在线视频| 久久精品99国产国产精| 久久99久久久欧美国产| 美女国产一区二区| 精品无人区卡一卡二卡三乱码免费卡| 亚洲gay无套男同| 天天综合网 天天综合色| 亚洲成人一区在线| 爽好多水快深点欧美视频| 婷婷六月综合亚洲| 免费在线看一区| 精彩视频一区二区三区| 高清国产一区二区| 91在线国内视频| 色94色欧美sute亚洲线路一ni| 欧美亚洲综合在线| 日韩午夜av一区| 国产日韩综合av| 亚洲天天做日日做天天谢日日欢| 一区二区三区四区不卡在线 | 欧美猛男gaygay网站| 欧美精品在线视频| 久久夜色精品一区| 亚洲免费电影在线| 日韩电影免费在线看| 国产在线精品一区二区三区不卡 | 欧美三级电影一区| 制服丝袜国产精品| 国产欧美一区二区三区在线看蜜臀| 日韩理论在线观看| 天堂成人免费av电影一区| 国产成人在线视频网址| 色播五月激情综合网| 精品国产乱子伦一区| 亚洲视频 欧洲视频| 天堂在线一区二区| 国产成人8x视频一区二区 | 国产乱码精品一区二区三区av | 色婷婷久久久综合中文字幕 | 色八戒一区二区三区| 日韩免费观看高清完整版| 亚洲私人影院在线观看| 久久99精品久久久| 在线观看亚洲成人| 欧美极品少妇xxxxⅹ高跟鞋 | 欧美韩国日本综合| 青娱乐精品视频| 色美美综合视频| 国产欧美综合色| 另类人妖一区二区av| 91高清视频在线| 国产精品人妖ts系列视频|