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

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

?? tree.java

?? java 版本的zlib壓縮代碼
?? JAVA
字號:
/* -*-mode:java; c-basic-offset:2; -*- *//*Copyright (c) 2000,2001,2002,2003 ymnk, JCraft,Inc. All rights reserved.Redistribution and use in source and binary forms, with or withoutmodification, are permitted provided that the following conditions are met:  1. Redistributions of source code must retain the above copyright notice,     this list of conditions and the following disclaimer.  2. Redistributions in binary form must reproduce the above copyright      notice, this list of conditions and the following disclaimer in      the documentation and/or other materials provided with the distribution.  3. The names of the authors may not be used to endorse or promote products     derived from this software without specific prior written permission.THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY ANDFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOTLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OFLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDINGNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *//* * This program is based on zlib-1.1.3, so all credit should go authors * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu) * and contributors of zlib. */package com.jcraft.jzlib;final class Tree{  static final private int MAX_BITS=15;  static final private int BL_CODES=19;  static final private int D_CODES=30;  static final private int LITERALS=256;  static final private int LENGTH_CODES=29;  static final private int L_CODES=(LITERALS+1+LENGTH_CODES);  static final private int HEAP_SIZE=(2*L_CODES+1);  // Bit length codes must not exceed MAX_BL_BITS bits  static final int MAX_BL_BITS=7;   // end of block literal code  static final int END_BLOCK=256;   // repeat previous bit length 3-6 times (2 bits of repeat count)  static final int REP_3_6=16;   // repeat a zero length 3-10 times  (3 bits of repeat count)  static final int REPZ_3_10=17;   // repeat a zero length 11-138 times  (7 bits of repeat count)  static final int REPZ_11_138=18;   // extra bits for each length code  static final int[] extra_lbits={    0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0  };  // extra bits for each distance code  static final int[] extra_dbits={    0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13  };  // extra bits for each bit length code  static final int[] extra_blbits={    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7  };  static final byte[] bl_order={    16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15};  // The lengths of the bit length codes are sent in order of decreasing  // probability, to avoid transmitting the lengths for unused bit  // length codes.  static final int Buf_size=8*2;  // see definition of array dist_code below  static final int DIST_CODE_LEN=512;  static final byte[] _dist_code = {    0,  1,  2,  3,  4,  4,  5,  5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  8,    8,  8,  8,  8,  9,  9,  9,  9,  9,  9,  9,  9, 10, 10, 10, 10, 10, 10, 10, 10,    10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,    11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13,    13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,    13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,    14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,    14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,    14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,  0,  0, 16, 17,    18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,    23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,    24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,    26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,    26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27,    27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,    27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,    28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,    29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,    29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,    29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29  };  static final byte[] _length_code={    0,  1,  2,  3,  4,  5,  6,  7,  8,  8,  9,  9, 10, 10, 11, 11, 12, 12, 12, 12,    13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16,    17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19,    19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,    21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22,    22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,    23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,    24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26,    26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,    26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,    27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28  };  static final int[] base_length = {    0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56,    64, 80, 96, 112, 128, 160, 192, 224, 0  };  static final int[] base_dist = {       0,   1,      2,     3,     4,    6,     8,    12,    16,     24,      32,  48,     64,    96,   128,  192,   256,   384,   512,    768,    1024, 1536,  2048,  3072,  4096,  6144,  8192, 12288, 16384, 24576  };  // Mapping from a distance to a distance code. dist is the distance - 1 and  // must not have side effects. _dist_code[256] and _dist_code[257] are never  // used.  static int d_code(int dist){    return ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>>7)]);  }  short[] dyn_tree;      // the dynamic tree  int     max_code;      // largest code with non zero frequency  StaticTree stat_desc;  // the corresponding static tree  // Compute the optimal bit lengths for a tree and update the total bit length  // for the current block.  // IN assertion: the fields freq and dad are set, heap[heap_max] and  //    above are the tree nodes sorted by increasing frequency.  // OUT assertions: the field len is set to the optimal bit length, the  //     array bl_count contains the frequencies for each bit length.  //     The length opt_len is updated; static_len is also updated if stree is  //     not null.  void gen_bitlen(Deflate s){    short[] tree = dyn_tree;    short[] stree = stat_desc.static_tree;    int[] extra = stat_desc.extra_bits;    int base = stat_desc.extra_base;    int max_length = stat_desc.max_length;    int h;              // heap index    int n, m;           // iterate over the tree elements    int bits;           // bit length    int xbits;          // extra bits    short f;            // frequency    int overflow = 0;   // number of elements with bit length too large    for (bits = 0; bits <= MAX_BITS; bits++) s.bl_count[bits] = 0;    // In a first pass, compute the optimal bit lengths (which may    // overflow in the case of the bit length tree).    tree[s.heap[s.heap_max]*2+1] = 0; // root of the heap    for(h=s.heap_max+1; h<HEAP_SIZE; h++){      n = s.heap[h];      bits = tree[tree[n*2+1]*2+1] + 1;      if (bits > max_length){ bits = max_length; overflow++; }      tree[n*2+1] = (short)bits;      // We overwrite tree[n*2+1] which is no longer needed      if (n > max_code) continue;  // not a leaf node      s.bl_count[bits]++;      xbits = 0;      if (n >= base) xbits = extra[n-base];      f = tree[n*2];      s.opt_len += f * (bits + xbits);      if (stree!=null) s.static_len += f * (stree[n*2+1] + xbits);    }    if (overflow == 0) return;    // This happens for example on obj2 and pic of the Calgary corpus    // Find the first bit length which could increase:    do {      bits = max_length-1;      while(s.bl_count[bits]==0) bits--;      s.bl_count[bits]--;      // move one leaf down the tree      s.bl_count[bits+1]+=2;   // move one overflow item as its brother      s.bl_count[max_length]--;      // The brother of the overflow item also moves one step up,      // but this does not affect bl_count[max_length]      overflow -= 2;    }    while (overflow > 0);    for (bits = max_length; bits != 0; bits--) {      n = s.bl_count[bits];      while (n != 0) {	m = s.heap[--h];	if (m > max_code) continue;	if (tree[m*2+1] != bits) {	  s.opt_len += ((long)bits - (long)tree[m*2+1])*(long)tree[m*2];	  tree[m*2+1] = (short)bits;	}	n--;      }    }  }  // Construct one Huffman tree and assigns the code bit strings and lengths.  // Update the total bit length for the current block.  // IN assertion: the field freq is set for all tree elements.  // OUT assertions: the fields len and code are set to the optimal bit length  //     and corresponding code. The length opt_len is updated; static_len is  //     also updated if stree is not null. The field max_code is set.  void build_tree(Deflate s){    short[] tree=dyn_tree;    short[] stree=stat_desc.static_tree;    int elems=stat_desc.elems;    int n, m;          // iterate over heap elements    int max_code=-1;   // largest code with non zero frequency    int node;          // new node being created    // Construct the initial heap, with least frequent element in    // heap[1]. The sons of heap[n] are heap[2*n] and heap[2*n+1].    // heap[0] is not used.    s.heap_len = 0;    s.heap_max = HEAP_SIZE;    for(n=0; n<elems; n++) {      if(tree[n*2] != 0) {	s.heap[++s.heap_len] = max_code = n;	s.depth[n] = 0;      }      else{	tree[n*2+1] = 0;      }    }    // The pkzip format requires that at least one distance code exists,    // and that at least one bit should be sent even if there is only one    // possible code. So to avoid special checks later on we force at least    // two codes of non zero frequency.    while (s.heap_len < 2) {      node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);      tree[node*2] = 1;      s.depth[node] = 0;      s.opt_len--; if (stree!=null) s.static_len -= stree[node*2+1];      // node is 0 or 1 so it does not have extra bits    }    this.max_code = max_code;    // The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,    // establish sub-heaps of increasing lengths:    for(n=s.heap_len/2;n>=1; n--)      s.pqdownheap(tree, n);    // Construct the Huffman tree by repeatedly combining the least two    // frequent nodes.    node=elems;                 // next internal node of the tree    do{      // n = node of least frequency      n=s.heap[1];      s.heap[1]=s.heap[s.heap_len--];      s.pqdownheap(tree, 1);      m=s.heap[1];                // m = node of next least frequency      s.heap[--s.heap_max] = n; // keep the nodes sorted by frequency      s.heap[--s.heap_max] = m;      // Create a new node father of n and m      tree[node*2] = (short)(tree[n*2] + tree[m*2]);      s.depth[node] = (byte)(Math.max(s.depth[n],s.depth[m])+1);      tree[n*2+1] = tree[m*2+1] = (short)node;      // and insert the new node in the heap      s.heap[1] = node++;      s.pqdownheap(tree, 1);    }    while(s.heap_len>=2);    s.heap[--s.heap_max] = s.heap[1];    // At this point, the fields freq and dad are set. We can now    // generate the bit lengths.    gen_bitlen(s);    // The field len is now set, we can generate the bit codes    gen_codes(tree, max_code, s.bl_count);  }  // Generate the codes for a given tree and bit counts (which need not be  // optimal).  // IN assertion: the array bl_count contains the bit length statistics for  // the given tree and the field len is set for all tree elements.  // OUT assertion: the field code is set for all tree elements of non  //     zero code length.  static void gen_codes(short[] tree, // the tree to decorate			int max_code, // largest code with non zero frequency			short[] bl_count // number of codes at each bit length			){    short[] next_code=new short[MAX_BITS+1]; // next code value for each bit length    short code = 0;            // running code value    int bits;                  // bit index    int n;                     // code index    // The distribution counts are first used to generate the code values    // without bit reversal.    for (bits = 1; bits <= MAX_BITS; bits++) {      next_code[bits] = code = (short)((code + bl_count[bits-1]) << 1);    }    // Check that the bit counts in bl_count are consistent. The last code    // must be all ones.    //Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,    //        "inconsistent bit counts");    //Tracev((stderr,"\ngen_codes: max_code %d ", max_code));    for (n = 0;  n <= max_code; n++) {      int len = tree[n*2+1];      if (len == 0) continue;      // Now reverse the bits      tree[n*2] = (short)(bi_reverse(next_code[len]++, len));    }  }  // Reverse the first len bits of a code, using straightforward code (a faster  // method would use a table)  // IN assertion: 1 <= len <= 15  static int bi_reverse(int code, // the value to invert			int len   // its bit length			){    int res = 0;    do{      res|=code&1;      code>>>=1;      res<<=1;    }     while(--len>0);    return res>>>1;  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
a4yy欧美一区二区三区| 99视频有精品| 久久精品人人做| 国产乱码精品一区二区三区av| 久久久久久久久岛国免费| 国产精品一区免费视频| 国产精品系列在线| 99久久精品费精品国产一区二区| 一区二区在线看| 欧美日韩精品一区二区| 免费观看日韩av| 久久久三级国产网站| 99久久精品免费看| 亚洲成人中文在线| 精品国产成人系列| aaa亚洲精品一二三区| 亚洲美女在线国产| 9191久久久久久久久久久| 精品一区二区三区不卡 | 亚洲综合色噜噜狠狠| 欧美日韩国产美女| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品久久久久久久裸模| 欧美午夜理伦三级在线观看| 蜜臀av国产精品久久久久| 国产亚洲一区二区三区| 色婷婷久久一区二区三区麻豆| 日韩电影免费一区| 国产欧美日韩视频一区二区| 欧美最猛黑人xxxxx猛交| 久久66热偷产精品| 18成人在线观看| 日韩一区二区三区免费观看| 成人美女视频在线观看| 午夜精品久久久久久久| 久久久久久免费毛片精品| 色噜噜狠狠一区二区三区果冻| 免费在线成人网| 国产精品美女视频| 911国产精品| av色综合久久天堂av综合| 日韩精品视频网站| 国产精品不卡一区| 日韩久久精品一区| www.成人在线| 日本最新不卡在线| 国产精品久久久久久久久动漫| 在线不卡免费欧美| av在线综合网| 久久精品99国产国产精| 亚洲美女视频在线观看| 久久精品一级爱片| 欧美喷潮久久久xxxxx| 成人黄色网址在线观看| 日本一区中文字幕| 亚洲免费av在线| 国产日韩v精品一区二区| 欧美浪妇xxxx高跟鞋交| 不卡的av网站| 久久精品噜噜噜成人88aⅴ| 亚洲三级小视频| 精品免费99久久| 欧美制服丝袜第一页| 国产aⅴ综合色| 美腿丝袜亚洲一区| 夜夜精品浪潮av一区二区三区| 国产日产欧美一区| 日韩一级片网址| 欧美视频一区二区在线观看| 成人小视频在线| 经典三级在线一区| 丝袜诱惑亚洲看片| 中文字幕一区二区在线观看| 精品理论电影在线观看 | 亚洲男同性视频| 久久久久久久久久美女| 日韩午夜在线观看视频| 在线观看不卡一区| 成人av资源站| 国产精品一区三区| 黄页网站大全一区二区| 日本欧美一区二区三区乱码| 亚洲免费观看在线视频| 国产免费成人在线视频| 精品少妇一区二区三区在线播放 | 日韩欧美在线影院| 欧美三级中文字| 99re亚洲国产精品| 国产成人亚洲综合a∨婷婷图片 | 欧美精品日韩精品| 欧美网站大全在线观看| 91年精品国产| 成人黄色电影在线| 高清视频一区二区| 狠狠色狠狠色综合日日91app| 人妖欧美一区二区| 天天色图综合网| 亚洲一区二区视频| 一区二区三区四区在线免费观看| 亚洲视频一区在线观看| 国产精品久久久久久久久动漫| 国产精品午夜在线观看| 国产精品日韩成人| 中文字幕久久午夜不卡| 国产女同性恋一区二区| 久久久久久麻豆| 久久精品一区二区三区不卡| 久久精品一级爱片| 久久久久久久久久电影| 国产女同性恋一区二区| 中文字幕av免费专区久久| 亚洲国产精品成人久久综合一区| 国产欧美在线观看一区| 国产午夜精品一区二区三区四区| 久久久精品天堂| 国产欧美综合在线观看第十页| 欧美国产一区视频在线观看| 国产精品麻豆99久久久久久| 国产欧美一区二区在线观看| 中文字幕精品在线不卡| 国产精品第五页| 亚洲女同一区二区| 亚洲高清不卡在线| 日韩高清在线观看| 捆绑变态av一区二区三区| 国产大陆a不卡| 不卡欧美aaaaa| 日本高清成人免费播放| 欧美日韩精品一区二区在线播放| 日韩三级在线观看| 久久综合丝袜日本网| 国产欧美日韩另类一区| 亚洲欧美日韩在线| 亚洲一卡二卡三卡四卡无卡久久| 亚洲成av人综合在线观看| 日本大胆欧美人术艺术动态| 精品无人区卡一卡二卡三乱码免费卡 | 亚洲精品视频自拍| 亚洲va韩国va欧美va| 丝袜诱惑亚洲看片| 国产一区二区三区久久悠悠色av| 国产不卡在线播放| 色嗨嗨av一区二区三区| 欧美精品xxxxbbbb| 欧美精品一区二区三区久久久 | 成人小视频免费在线观看| 91麻豆自制传媒国产之光| 欧美日韩国产高清一区| 日韩免费看的电影| 国产日韩欧美在线一区| 一区二区三区中文在线| 免费人成网站在线观看欧美高清| 国产精品综合一区二区三区| 91免费观看视频在线| 欧美高清性hdvideosex| 久久精品夜色噜噜亚洲a∨| 一区二区三区四区国产精品| 日本欧美在线看| 99视频有精品| 欧美一区二区三区成人| 国产精品色哟哟| 午夜av电影一区| 国产精品香蕉一区二区三区| 色婷婷综合久久久中文字幕| 欧美一级精品在线| 国产精品乱人伦| 日韩精品久久理论片| 国产精品自在在线| 欧美亚洲综合网| 久久免费看少妇高潮| 一区二区不卡在线播放| 精品无人区卡一卡二卡三乱码免费卡 | 一级女性全黄久久生活片免费| 秋霞成人午夜伦在线观看| 成人午夜视频在线观看| 欧美久久久影院| 国产精品免费视频一区| 日韩一区精品视频| heyzo一本久久综合| 欧美喷水一区二区| 亚洲欧洲av色图| 久久99国产精品成人| 日本国产一区二区| 国产亚洲成av人在线观看导航 | 91蝌蚪porny| 精品福利在线导航| 亚洲一区二区偷拍精品| 国产·精品毛片| 欧美一级二级三级蜜桃| 日韩伦理av电影| 黄网站免费久久| 欧美日韩极品在线观看一区| 中文字幕 久热精品 视频在线 | 久久久久久久久久久电影| 亚洲成av人片在线观看| 不卡的av中国片| 久久久久成人黄色影片| 日韩专区中文字幕一区二区| av不卡一区二区三区| 久久久夜色精品亚洲|